java-web实现增删改查

新手小白,首次利用csdn记录学习过程

首次写Javaweb后端
1.数据库建立相关的表
2.建立服务端并且创建相应的工厂
3.通过前端页面建立服务器联系

以建立物资管理系统为例子
前端页面如下:
java-web实现增删改查_第1张图片
一.创建数据库表
根据前端信息我们需要建立一张表:

create table tb1_provider(
id char(32) primary key,
name varchar2(50),
address varchar2(50),
postcode  number,
tel varchar2(10),
fax varchar2(20),
bankName varchar2(50),
bankNo varchar2(50),
meno varchar2(200)
)

java部分:
先建立分包;
1.拥有接口,对应实现类,还有工厂,这样的好处是他人不会直接通过impl来看实现方法,直接进入工厂,也方便了代码书写。
2.domain建立所需要的属性(私有)
3.servlet实现服务端功能
java-web实现增删改查_第2张图片

首先是domain部分代码

package com.lq.good.provider.domain;

public class Provider {
	private String id;
	private String name;
	private String address;
	private int postcode;
	private String tel;
	private String fax;
	private String bankName;
	private String bankNo;
	private String meno;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public int getPostcode() {
		return postcode;
	}
	public void setPostcode(int postcode) {
		this.postcode = postcode;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getFax() {
		return fax;
	}
	public void setFax(String fax) {
		this.fax = fax;
	}
	public String getBankName() {
		return bankName;
	}
	public void setBankName(String bankName) {
		this.bankName = bankName;
	}
	public String getBankNo() {
		return bankNo;
	}
	public void setBankNo(String bankNo) {
		this.bankNo = bankNo;
	}
	public String getMeno() {
		return meno;
	}
	public void setMeno(String meno) {
		this.meno = meno;
	}
}

然后dao代码:
1.接口dao:

package com.lq.good.provider.dao.dao;

import java.util.List;

import com.lq.good.provider.domain.Provider;
import com.lq.good.user.domain.Dept;
import com.lq.good.user.domain.User;

public interface ProviderDAO {
	public boolean add(Provider p);//添加
	public List queryAll();//显示
	public List queryForPage(int page,int pageSize);//实现下角标页脚传递页数与大小
	public int queryForCount();//计算当前所在页数
	public boolean delete(String id);//删除
	public Provider queryById(String id);//通过id查询
	public boolean update(Provider p); //更改
}

2.创建工厂Factory:

package com.lq.good.provider.dao.factory;

import com.lq.good.provider.dao.dao.ProviderDAO;
import com.lq.good.provider.dao.impl.ProviderDAOimpl;


public class ProviderDAOFactory {

	public static ProviderDAO getProviderDAO() {
		return new ProviderDAOimpl();
	}
}

3.实现接口impl

package com.lq.good.provider.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.lq.good.provider.dao.dao.ProviderDAO;
import com.lq.good.provider.domain.Provider;
import com.lq.good.user.domain.User;
import com.lq.good.util.DBUtil;

public class ProviderDAOimpl implements ProviderDAO {
	private Connection conn;
	private PreparedStatement pst;
	private ResultSet rs;
	@Override
	public boolean add(Provider p) {
		String sql="insert into tb1_provider values(?,?,?,?,?,?,?,?,?)";
		try {
			conn=DBUtil.openConn();
			pst=conn.prepareStatement(sql);
			pst.setString(1,p.getId());
			pst.setString(2, p.getName());
			pst.setString(3, p.getAddress());
			pst.setInt(4, p.getPostcode());
			pst.setString(5,p.getTel());
			pst.setString(6, p.getFax());
			pst.setString(7, p.getBankName());
			pst.setString(8, p.getBankNo());
			pst.setString(9, p.getMeno());
			pst.executeUpdate();
			return true;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			DBUtil.close(pst, conn);
		}	
		return false;
	}
	@Override
	public List queryAll() {
		 List plist=new ArrayList<>();
		String sql="select * from tb1_provider";
		try {
			conn=DBUtil.openConn();
			pst=conn.prepareStatement(sql);
            rs=pst.executeQuery();
            while(rs.next()) {
            	Provider p=new Provider();
            	p.setId(rs.getString("id"));
            	p.setName(rs.getString("name"));
            	p.setAddress(rs.getString("address"));
            	p.setPostcode(rs.getInt("postcode"));
            	p.setTel(rs.getString("tel"));
            	p.setFax(rs.getString("fax"));
            	p.setBankName(rs.getString("bankName"));
            	p.setBankNo(rs.getString("bankNo"));
            	p.setMeno(rs.getString("meno"));            
                plist.add(p);
            }
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	finally {
			DBUtil.close(rs, pst, conn);
		}
		return plist;
	}
	@Override
	public List queryForPage(int page, int pageSize) {
		 List plist=new ArrayList<>();
			String sql="select * from (select A.*,rownum rn from(select * from "
					+ " tb1_provider) A where rownum<=?) where rn>?";
			try {
				conn=DBUtil.openConn();
				pst=conn.prepareStatement(sql);
				pst.setInt(1, page*pageSize);
            	pst.setInt(2, (page-1)*pageSize);
	            rs=pst.executeQuery();
	            while(rs.next()) {
	            	Provider p=new Provider();
	            	p.setId(rs.getString("id"));
	            	p.setName(rs.getString("name"));
	            	p.setAddress(rs.getString("address"));
	            	p.setPostcode(rs.getInt("postcode"));
	            	p.setTel(rs.getString("tel"));
	            	p.setFax(rs.getString("fax"));
	                plist.add(p);
	            }
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}	finally {
				DBUtil.close(rs, pst, conn);
			}
			return plist;
	}
	@Override
	public int queryForCount() {
		String sql="select count(*) from tb1_provider";
		try {
			conn=DBUtil.openConn();
			pst=conn.prepareStatement(sql);
            rs=pst.executeQuery();
            if(rs.next()) {
            	return rs.getInt(1);
            }
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			DBUtil.close(rs, pst, conn);
		}	
		return 0;
}
	@Override
	public boolean delete(String id) {
		String sql="delete tb1_provider where id=?";
		try {
			conn=DBUtil.openConn();
			pst=conn.prepareStatement(sql);
			pst.setString(1, id);
			pst.executeUpdate();
			return true;
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			DBUtil.close(pst, conn);
		}	
		return false;
	}
	@Override
	public boolean update(Provider p) {
		String sql="update tb1_provider set name=?,address=?,postcode=?,tel=?,fax=?,bankName=?,bankNo=?,meno=? where id=?";
		try {
			conn=DBUtil.openConn();
			pst=conn.prepareStatement(sql);
			pst.setString(1,p.getName());
			pst.setString(2,p.getAddress() );
			pst.setInt(3,p.getPostcode() );
			pst.setString(4,p.getTel() );
			pst.setString(5, p.getFax());
			pst.setString(6, p.getBankName());
			pst.setString(7, p.getBankNo());
			pst.setString(8, p.getMeno());
			pst.setString(9, p.getId());
			pst.executeUpdate();
			return true;
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			DBUtil.close(pst, conn);
		}
		return false;
	}
	@Override
	public Provider queryById(String id) {
		String sql="select * from tb1_provider where id=?";
        try {
            conn=DBUtil.openConn();
            pst=conn.prepareStatement(sql);
            pst.setString(1, id);
            rs=pst.executeQuery();
            if(rs.next()) {
            	Provider p=new Provider();
            	p.setName(rs.getString("name"));
            	p.setAddress(rs.getString("address"));
            	p.setPostcode(rs.getInt("postcode"));
            	p.setTel(rs.getString("tel"));
            	p.setFax(rs.getString("fax"));
            	p.setBankName(rs.getString("bankName"));
            	p.setBankNo(rs.getString("bankNo"));
            	p.setMeno(rs.getString("meno")); 
            	p.setId(rs.getString("id"));
                return p;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DBUtil.close(rs, pst, conn);
        }
        return null;
	}
	}

servlet部分:

    package com.lq.good.provider.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.lang.reflect.InvocationTargetException;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.beanutils.BeanUtils;
    
    import com.lq.good.dao.dao.UserDAO;
    import com.lq.good.dao.factory.UserDAOFactory;
    import com.lq.good.provider.dao.dao.ProviderDAO;
    import com.lq.good.provider.dao.factory.ProviderDAOFactory;
    import com.lq.good.provider.domain.Provider;
    import com.lq.good.user.domain.User;
    import com.lq.good.util.PageBean;
    import com.lq.good.util.UUIDUtil;
    
    @WebServlet("/jcxx/provider")
    public class ProviderServelt extends HttpServlet {
    		@Override
    		protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {	
    			this.doPost(req, resp);
    		}
    		@Override
    		protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    			String op=req.getParameter("op");
    			if("add".equals(op)) {
    				add(req,resp);
    			}
    			else if("list".equals(op)) {
    				list(req,resp);
    			}
    			else if("page".equals(op)) {
    				page(req,resp);
    			}
    			else if("delete".equals(op)) {
    				delete(req,resp);
    			}else if("update".equals(op)){
    				update(req,resp);
    			}
    			else if("edit".equals(op)) {
    				edit(req,resp);
    			}else {
    				System.out.println("无效操作!!!");
    			}
    		}	
    		private void edit(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {	
    			String id=req.getParameter("id");
    			ProviderDAO pdao=ProviderDAOFactory.getProviderDAO();
    			Provider p=pdao.queryById(id);
    			req.setAttribute("provider", p);
    			req.getRequestDispatcher("/jcxx/providerMQuery.jsp")
    			.forward(req, resp);		
    		}
    		
    		private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {	
    			String name=req.getParameter("name");
    			String address=req.getParameter("address");
    			String postcode=req.getParameter("postcode");
    			String tel=req.getParameter("tel");
    			String fax=req.getParameter("fax");
    			String bankName=req.getParameter("bankName");
    			String bankNo=req.getParameter("bankNo");
    			String meno=req.getParameter("meno");
    			String id=req.getParameter("id");
    			Provider p=new Provider();
    			p.setName(name);
    			p.setAddress(address);
    			p.setPostcode(Integer.parseInt(postcode));
    			p.setTel(tel);
    			p.setFax(fax);
    			p.setBankName(bankName);
    			p.setBankNo(bankNo);
    			p.setMeno(meno);
    			p.setId(id);
    			ProviderDAO pdao=ProviderDAOFactory.getProviderDAO();
    			boolean b=pdao.update(p);
    			if(b)
    			{
    				resp.sendRedirect(req.getContextPath()+"/jcxx/provider?op=page");
    			}
    			else {
    				System.out.println("修改失败");
    			}	
    		}
    		
    	
    		private void delete(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {	
    			String id=req.getParameter("id");
    			ProviderDAO pdao=ProviderDAOFactory.getProviderDAO();
    			boolean b=pdao.delete(id);	
    			if(b) {
    				resp.sendRedirect(req.getContextPath()+"/jcxx/provider?op=page");
    			}
    			else {
    				System.out.println("删除失败!!!!");			
    			}	
    		}
    		
    			
    		private void page(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {	
    			String spageNo=req.getParameter("pageNo");
    			int pageNo=1;
    			if(spageNo!=null) {
    				pageNo=Integer.parseInt(spageNo);
    			}
    			int pageSize=3;
    			String url="provider?op=page";
    			ProviderDAO pdao=ProviderDAOFactory.getProviderDAO();
    			
    			List plist=pdao.queryForPage(pageNo, pageSize);
    			
    			int totalRecord=pdao.queryForCount();
    			PageBean pageBean=new PageBean();
    			pageBean.setList(plist);
    			pageBean.setPageNo(pageNo);
    			pageBean.setPageSize(pageSize);
    			pageBean.setTotalRecord(totalRecord);
    			pageBean.setUrl(url);
    			req.setAttribute("pageBean",pageBean);
    			req.getRequestDispatcher("/jcxx/providerList.jsp").forward(req, resp);	
    
    		}
    		
    		private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {	
    			ProviderDAO pdao=ProviderDAOFactory.getProviderDAO();
    			List plist=pdao.queryAll();
    			req.setAttribute("plist",plist);
    			req.getRequestDispatcher("/jcxx/providerList.jsp").forward(req, resp);			
    		}
    		
    		private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    			Provider p=new Provider();
    			p.setId(UUIDUtil.getUUID());
    			try {
    				

BeanUtils.populate(p, req.getParameterMap());
				ProviderDAO pdao=ProviderDAOFactory.getProviderDAO();
				boolean b=pdao.add(p);
				if(b) {
					resp.sendRedirect(req.getContextPath()+"/jcxx/provider?op=list");
				}
				else {
					System.out.println("添加失败");
				}
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
}

涉及到的工具类:
java-web实现增删改查_第3张图片
到此为止服务器工作就到此为止。

前端页面修改:
涉及三个页面:
添加页面:providerAdd.htm
显示信息页面:providerList.jsp
修改页面:providerMQuery.jsp

providerAdd.htm:
1.name属性要与req.getParameter(“”)中获取的一致;
2.在确认添加事件中form中action=“provider?op=add”

providerList.jsp:
首先先要导入jquery-1.11.3.min.js;
在工程中需要导入:
java-web实现增删改查_第4张图片
其中pager是页脚的xml,代码如下:

  

    
    1.0
    pager
    http://com/lq/tag
    
        
        page
        
        com.lq.good.util.PageTag
        
        empty
        
        
            
            pageNo
            
            true
            
            true
            
            int
        
        
            
            totalRecord
            true
            true
            int
        
        
            
            pageSize
            true
            true
            int
        
        
            
            url
            true
            true
            String
        
        

在jsp页面顶部添加:

 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 <%@taglib prefix="page" uri="http://com/lq/tag" %>

页面中显示添加需要跳转到添加页面:

添加供应商信息

利用JSTL语句显示数据库中查询的结果的循环语句;
利用EL语句显示数据库查询语句的属性信息;


            
             ${p.name}
             ${p.address}
             ${p.postcode}
             ${p.tel}
             ${p.fax}
             修改
            
            删除
            
          
		    

页脚的语句:

 
		
		 

providerMQuery.jsp:
同理form中需要:action=“provider?op=update”
由于需要id,但是不能显示所以写成隐藏表单域:


剩下需要填写属性用例子模式写就行了;


            地    址:
            
            

特别注意name与value值要与servlet对应
ps:如果出现乱码后端加入一个过滤器即可

到这里简陋的web后端实现增删改查就实现了

你可能感兴趣的:(首个小例子)