库存物资管理系统:
1.首先建两个数据表,一个pass用于商品的增删改查,一个passd记录商品的出库与入库信息;
2.建两个实体类,用来传递商品与单据的信息
3.在添加与删除时,填写入库或者出库单据,入库时增加商品,出库时删除商品。course类写商品的增删改查,另一个dao类只写单据的添加,自后将两张表连接起来
package common; public class Pass { private int id; private String name; /*名称*/ private String vender;/*生产厂家*/ private String xnumber;/*型号*/ private String standard;/*规格*/ public int getId() { return id; } public void setId() { this.id=id; } public String getName() { return name; } public void setName() { this.name=name; } public String getVender() { return vender; } public void setVender() { this.vender=vender; } public String getXnumber() { return xnumber; } public void setXnumber() { this.xnumber=xnumber; } public String getStandard() { return standard; } public void setStandard() { this.standard=standard; } public Pass() {} public Pass(int id, String name, String vender, String xnumber,String standard) { this.id = id; this.name = name; this.vender=vender; this.xnumber = xnumber; this.standard = standard; } public Pass( String name, String vender, String xnumber,String standard) { this.name = name; this.vender=vender; this.xnumber = xnumber; this.standard = standard; } }
package dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import common.Pass; import helper.DeHelper; public class PassDao { /** * 添加 * @param course * @return */ public boolean add(Pass pass) { String sql = "insert into pass(name, vender, xnumber,standard) values('" + pass.getName() + "','" + pass.getVender() + "','" + pass.getXnumber() + "','"+pass.getStandard()+"')"; Connection conn = DeHelper.getConn(); Statement state = null; boolean f = false; int a = 0; try { state = conn.createStatement(); state.executeUpdate(sql); } catch (Exception e) { e.printStackTrace(); } finally { DeHelper.close(state, conn); } if (a > 0) { f = true; } return f; } /** * 删除 * * @param id * @return */ public boolean delete (int id) { boolean f = false; String sql = "delete from pass where id='" + id + "'"; Connection conn = DeHelper.getConn(); Statement state = null; int a = 0; try { state = conn.createStatement(); a = state.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } finally { DeHelper.close(state, conn); } if (a > 0) { f = true; } return f; } /** * 修改 * @param name * @param pass */ public boolean update(Pass pass) { String sql = "update pass set name='" + pass.getName() + "', vender='" + pass.getVender() + "', xnumber='" + pass.getXnumber()+"',standard='"+pass.getStandard() + "' where id='" + pass.getId() + "'"; Connection conn = DeHelper.getConn(); Statement state = null; boolean f = false; int a = 0; try { state = conn.createStatement(); a = state.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } finally { DeHelper.close(state, conn); } if (a > 0) { f = true; } return f; } /** * 验证名称是否唯一 * true --- 不唯一 * @param name * @return */ public boolean name(String name) { boolean flag = false; String sql = "select name from course where name = '" + name + "'"; Connection conn = DeHelper.getConn(); Statement state = null; ResultSet rs = null; try { state = conn.createStatement(); rs = state.executeQuery(sql); while (rs.next()) { flag = true; } } catch (SQLException e) { e.printStackTrace(); } finally { DeHelper.close(rs, state, conn); } return flag; } /** * 通过ID得到类 * @param id * @return */ public Pass getPassById(int id) { String sql = "select * from pass where id ='" + id + "'"; Connection conn = DeHelper.getConn(); Statement state = null; ResultSet rs = null; Pass pass = null; try { state = conn.createStatement(); rs = state.executeQuery(sql); while (rs.next()) { String name = rs.getString("name"); String vender = rs.getString("vender"); String xnumber = rs.getString("xnumber"); String standard=rs.getString("standard"); pass = new Pass(id, name, vender, xnumber,standard); } } catch (Exception e) { e.printStackTrace(); } finally { DeHelper.close(rs, state, conn); } return pass; } /** * 通过name得到Pass * @param name * @return */ public Pass getPassByName(String name) { String sql = "select * from pass where name ='" + name + "'"; Connection conn = DeHelper.getConn(); Statement state = null; ResultSet rs = null; Pass pass = null; try { state = conn.createStatement(); rs = state.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); String vender = rs.getString("vender"); String xnumber = rs.getString("xnumber"); String standard=rs.getString("standard"); pass = new Pass(id, name,vender, xnumber, standard); } } catch (Exception e) { e.printStackTrace(); } finally { DeHelper.close(rs, state, conn); } return pass; } /** * 查找 * @param name * @param teacher * @param classroom * @return */ public List<Pass> search(String name, String vender, String xnumber,String standard) { String sql = "select * from pass where "; if (name != "") { sql += "name like '%" + name + "%'"; } if (vender != "") { sql += "vender like '%" + vender + "%'"; } if (xnumber != "") { sql += "xnumber like '%" + xnumber + "%'"; } if (standard != "") { sql += "standard like '%" + standard + "%'"; } List<Pass> list = new ArrayList<>(); Connection conn = DeHelper.getConn(); Statement state = null; ResultSet rs = null; try { state = conn.createStatement(); rs = state.executeQuery(sql); Pass bean = null; while (rs.next()) { int id = rs.getInt("id"); String name2 = rs.getString("name"); String vender2 = rs.getString("vender"); String xnumber2 = rs.getString("xnumber"); String standard2=rs.getString("standard"); bean = new Pass(id, name2, vender2, xnumber2 ,standard2); list.add(bean); } } catch (SQLException e) { e.printStackTrace(); } finally { DeHelper.close(rs, state, conn); } return list; } /** * 全部数据 * @param name * @param teacher * @param classroom * @return */ public List<Pass> list() { String sql = "select * from pass"; List<Pass> list = new ArrayList<>(); Connection conn = DeHelper.getConn(); Statement state = null; ResultSet rs = null; try { state = conn.createStatement(); rs = state.executeQuery(sql); Pass bean = null; while (rs.next()) { int id = rs.getInt("id"); String name2 = rs.getString("name"); String vender2 = rs.getString("vender"); String xnumber2 = rs.getString("xnumber"); String standard2=rs.getString("standard"); bean = new Pass(id, name2, vender2, xnumber2 ,standard2); list.add(bean); } } catch (SQLException e) { e.printStackTrace(); } finally { DeHelper.close(rs, state, conn); } return list; } }
package helper; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * 数据库连接工具 * @author Hu * */ public class DeHelper { public static String db_url = "jdbc:mysql://localhost:3306/MySQL?useSSL=false"; public static String db_user = "root"; public static String db_pass = "995893"; public static Connection getConn () { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver");//加载驱动 conn = DriverManager.getConnection(db_url, db_user, db_pass); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 关闭连接 * @param state * @param conn */ public static void close (Statement state, Connection conn) { if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close (ResultSet rs, Statement state, Connection conn) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
package service; import dao.PassDao; import java.util.List; import common.Pass; /** * PassService * 服务层 * @author Hu * */ public class PassService { PassDao cDao = new PassDao(); /** * 添加 * @param course * @return */ public boolean add(Pass pass) { boolean f = false; if(!cDao.name(pass.getName())) { cDao.add(pass); f = true; } return f; } /** * 删除 */ public void del(int id) { cDao.delete(id); } /** * 修改 * @return */ public void update(Pass pass) { cDao.update(pass); } /** * 通过ID得到一个Course * @return */ public Pass getPassById(int id) { return cDao.getPassById(id); } /** * 通过Name得到一个Course * @return */ public Pass getPassByName(String name) { return cDao.getPassByName(name); } /** * 查找 * @return */ public List<Pass> search(String name, String vender, String xnumber,String standard) { return cDao.search(name, vender, xnumber,standard); } /** * 全部数据 * @return */ public List<Pass> list() { return cDao.list(); } }
package servlet; import java.io.IOException; 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 common.Pass; import service.PassService; @WebServlet("/PassServlet") public class PassServlet extends HttpServlet { private static final long serialVersionUID = 1L; PassService service = new PassService(); /** * 方法选择 */ protected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException,IOException{ req.setCharacterEncoding("utf-8"); String method = req.getParameter("method"); if ("add".equals(method)) { add(req, resp); } else if ("del".equals(method)) { del(req, resp); } else if ("update".equals(method)) { update(req, resp); } else if ("search".equals(method)) { search(req, resp); } else if ("getpassbyid".equals(method)) { getPassById(req, resp); } else if ("getpassbyname".equals(method)) { getPassByName(req, resp); } else if ("list".equals(method)) { list(req, resp); } } /** * 添加 * @param req * @param resp * @throws IOException * @throws ServletException */ private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { req.setCharacterEncoding("utf-8"); String name = req.getParameter("name"); String vender = req.getParameter("vender"); String xnumber = req.getParameter("xnumber"); String standard = req.getParameter("standard "); Pass pass = new Pass(name, vender,xnumber,standard); //添加后消息显示 if(service.add(pass)) { req.setAttribute("message", "添加成功"); req.getRequestDispatcher("add.jsp").forward(req,resp); } else { req.setAttribute("message", "产品重复,请重新录入"); req.getRequestDispatcher("add.jsp").forward(req,resp); } } /** * 全部 * @param req * @param resp * @throws ServletException */ private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ req.setCharacterEncoding("utf-8"); List<Pass> pass = service.list(); req.setAttribute("pass", pass); req.getRequestDispatcher("list.jsp").forward(req,resp); } /** * 通过ID得到Pass * @param req * @param resp * @throws ServletException */ private void getPassById(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ req.setCharacterEncoding("utf-8"); int id = Integer.parseInt(req.getParameter("id")); Pass pass = service.getPassById(id); req.setAttribute("pass", pass); req.getRequestDispatcher("detail2.jsp").forward(req,resp); } /** * 通过名字查找 * 跳转至删除 * @param req * @param resp * @throws IOException * @throws ServletException */ private void getPassByName(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ req.setCharacterEncoding("utf-8"); String name = req.getParameter("name"); Pass pass = service.getPassByName(name); if(pass == null) { req.setAttribute("message", "查无此产品!"); req.getRequestDispatcher("del.jsp").forward(req,resp); } else { req.setAttribute("pass", pass); req.getRequestDispatcher("detail.jsp").forward(req,resp); } } /** * 删除 * @param req * @param resp * @throws IOException * @throws ServletException */ private void del(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ req.setCharacterEncoding("utf-8"); int id = Integer.parseInt(req.getParameter("id")); service.del(id); req.setAttribute("message", "删除成功!"); req.getRequestDispatcher("del.jsp").forward(req,resp); } /** * 修改 * @param req * @param resp * @throws IOException * @throws ServletException */ private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ req.setCharacterEncoding("utf-8"); int id = Integer.parseInt(req.getParameter("id")); String name = req.getParameter("name"); String vender = req.getParameter("vender"); String xnumber = req.getParameter("xnumber"); String standard=req.getParameter("standard"); Pass pass = new Pass(id, name,vender, xnumber, standard); service.update(pass); req.setAttribute("message", "修改成功"); req.getRequestDispatcher("PassServlet?method=list").forward(req,resp); } /** * 查找 * @param req * @param resp * @throws ServletException */ private void search(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ req.setCharacterEncoding("utf-8"); String name = req.getParameter("name"); String vender = req.getParameter("vender"); String xnumber = req.getParameter("xnumber"); String standard=req.getParameter("standard"); List<Pass> pass = service.search(name, vender, xnumber, standard); req.setAttribute("courses", pass); req.getRequestDispatcher("searchlist.jsp").forward(req,resp); } }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style> .a{ margin-top: 20px; } .b{ font-size: 20px; 160px; color: white; background-color: greenyellow; } </style> </head> <body> <% Object message = request.getAttribute("message"); if(message!=null && !"".equals(message)){ %> <script type="text/javascript"> alert("<%=request.getAttribute("message")%>"); </script> <%} %> <div align="center"> <h1 style="color: red;">产品信息录入</h1> <a href="index.jsp">返回主页</a> <form action="PassServlet?method=add" method="post" onsubmit="return check()"> <div class="a"> 产品名称<input type="text" id="name" name="name"/> </div> <div class="a"> 生产厂家<input type="text" id="vender" name="vender" /> </div> <div class="a"> 型号<input type="text" id="xnumber" name="xnumber" /> </div> <div class="a"> 规格<input type="text" id="standard" name="standard" /> <div class="a"> <button type="submit" class="b">保 存</button> </div> </form> </div> <script type="text/javascript"> function check() { var name = document.getElementById("name");; var vender = document.getElementById("vender"); var xnumber = document.getElementById("xnumber"); var standard = document.getElementById("standard"); //非空 if(name.value == '') { alert('无此产品'); name.focus(); return false; } if(vender.value == '') { alert('不知厂家'); vender.focus(); return false; } if(xnumber.value == '') { alert('型号不明'); xnumber.focus(); return false; } if(standard.value == '') { alert('规格不明'); standard.focus(); return false; } } </script> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style> .a{ margin-top: 20px; } .b{ font-size: 20px; 160px; color: white; background-color: greenyellow; } </style> </head> <body> <% Object message = request.getAttribute("message"); if(message!=null && !"".equals(message)){ %> <script type="text/javascript"> alert("<%=request.getAttribute("message")%>"); </script> <%} %> <div align="center"> <h1 style="color: red;">产品信息删除</h1> <a href="index.jsp">返回主页</a> <form action="CourseServlet?method=getcoursebyname" method="post" onsubmit="return check()"> <div class="a"> 产品名称<input type="text" id="name" name="name"/> </div> <div class="a"> <button type="submit" class="b">查 找</button> </div> </form> </div> <script type="text/javascript"> function check() { var name = document.getElementById("name");; //非空 if(name.value == '') { alert('无此产品'); name.focus(); return false; } } </script> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style> .a{ margin-top: 20px; } .b{ font-size: 20px; 160px; color: white; background-color: greenyellow; } .tb, td { border: 1px solid black; font-size: 22px; } </style> </head> <body> <div align="center"> <h1 style="color: red;">产品信息删除</h1> <a href="index.jsp">返回主页</a> <table class="tb"> <tr> <td>产品名称</td> <td>${pass.name}</td> </tr> <tr> <td>生产厂家</td> <td>${pass.vender}</td> </tr> <tr> <td>型号</td> <td>${pass.xnumber}</td> </tr> <tr> <td>规格</td> <td>${pass.standard}</td> </tr> </table> <div class="a"> <a onclick="return check()" href="PassServlet?method=del&id=${pass.id}">删 除</a> </div> </div> <script type="text/javascript"> function check() { if (confirm("是否删除?")){ return true; }else{ return false; } } </script> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style> .a{ margin-top: 20px; } .b{ font-size: 20px; 160px; color: white; background-color: greenyellow; } </style> </head> <body> <% Object message = request.getAttribute("message"); if(message!=null && !"".equals(message)){ %> <script type="text/javascript"> alert("<%=request.getAttribute("message")%>"); </script> <%} %> <div align="center"> <h1 style="color: red;">产品信息修改</h1> <a href="index.jsp">返回主页</a> <form action="CourseServlet?method=update" method="post" onsubmit="return check()"> <div class="a"> 产品名称<input type="text" id="name" name="name" value="${pass.name}"/> </div> <div class="a"> 生产厂家<input type="text" id="vender" name="vender" value="${pass.vender}"/> </div> <div class="a"> 型号<input type="text" id="xnumber" name="xnumber" value="${pass.xnumber}"/> </div> <div class="a"> 规格<input type="text" id="standard" name="standard" value="${pass.standard}"/> </div> <input type="hidden" id="id" name="id" value="${pass.id}"/> <div class="a"> <button type="submit" class="b">修 改</button> </div> </form> </div> <script type="text/javascript"> function check() { var name = document.getElementById("name");; var vender = document.getElementById("vender"); var xnumber = document.getElementById("xnumber"); var standard = document.getElementById("standard"); //非空 if(name.value == '') { alert('无此产品'); name.focus(); return false; } if(vender.value == '') { alert('厂家不明'); vender.focus(); return false; } if(xnumber.value == '') { alert('型号不明'); xnumber.focus(); return false; } if(standard.value == '') { alert('规格不明'); standard.focus(); return false; } </script> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>首页</title> <style> .a{ font-size: 26px; margin-top: 20px; } </style> </head> <body> <div align="center"> <h1 style="color: red;">库存物资管理系统</h1> <div class="a"> <a href="add.jsp">产品信息录入</a> </div> <div class="a"> <a href="PassServlet?method=list">产品信息修改</a> </div> <div class="a"> <a href="del.jsp">产品信息删除</a> </div> <div class="a"> <a href="search.jsp">产品信息查询</a> </div> </div> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style> .a{ margin-top: 20px; } .b{ font-size: 20px; 160px; color: white; background-color: greenyellow; } .tb, td { border: 1px solid black; font-size: 22px; } </style> </head> <body> <% Object message = request.getAttribute("message"); if(message!=null && !"".equals(message)){ %> <script type="text/javascript"> alert("<%=request.getAttribute("message")%>"); </script> <%} %> <div align="center"> <h1 style="color: red;">产品信息列表</h1> <a href="index.jsp">返回主页</a> <table class="tb"> <tr> <td>id</td> <td>产品名称</td> <td>生产厂家</td> <td>型号</td> <td>规格<td> <td align="center" colspan="2">操作</td> </tr> <c:forEach items="${courses}" var="item"> <tr> <td>${item.id}</td> <td>${item.name}</td> <td>${item.vender}</td> <td>${item.xnumber}</td> <td>${item.standard}</td> <td><a href="PassServlet?method=getpassbyid&id=${item.id}">修改</a></td> </tr> </c:forEach> </table> </div> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style> .a{ margin-top: 20px; } .b{ font-size: 20px; 160px; color: white; background-color: greenyellow; } </style> </head> <body> <div align="center"> <h1 style="color: red;">产品信息查询</h1> <a href="index.jsp">返回主页</a> <form action="PassServlet?method=add" method="post" onsubmit="return check()"> <div class="a"> 产品名称<input type="text" id="name" name="name"/> </div> <div class="a"> 生产厂家<input type="text" id="vender" name="vender" /> </div> <div class="a"> 型号<input type="text" id="xnumber" name="xnumber" /> </div> <div class="a"> 规格<input type="text" id="standard" name="standard" /> <div class="a"> <button type="submit" class="b">保 存</button> </div> </form> </div> <script type="text/javascript"> function check() { var name = document.getElementById("name");; var vender = document.getElementById("vender"); var xnumber = document.getElementById("xnumber"); var standard = document.getElementById("standard"); //非空 if(name.value == '' && vender.value == '' && xnumber.value == ''&&standard.value=='') { alert('请填写一个条件'); return false; } } </script> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style> .a{ margin-top: 20px; } .b{ font-size: 20px; 160px; color: white; background-color: greenyellow; } .tb, td { border: 1px solid black; font-size: 22px; } </style> </head> <body> <div align="center"> <h1 style="color: red;">产品信息列表</h1> <a href="index.jsp">返回主页</a> <table class="tb"> <tr> <td>id</td> <td>产品名称</td> <td>生产厂家</td> <td>型号</td> <td>规格<td> </tr> <!-- forEach遍历出adminBeans --> <c:forEach items="${pass}" var="item" varStatus="status"> <tr> <td>${item.id}</td> <td><a>${item.name}</a></td> <td>${item.vender}</td> <td>${item.xnumber}</td> <td>${item.standard}</td> </tr> </c:forEach> </table> </div> </body> </html>