Empdao类
package cn.hp.dao; import cn.hp.entity.Dept; import cn.hp.entity.Emp; import cn.hp.util.DBHelper; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List; public class EmpDao { public Emp login(String name, String password) { Connection conn = DBHelper.getConn(); PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement("select * from emp where name=? and password=?"); ps.setObject(1, name); ps.setObject(2, password); rs = ps.executeQuery(); Emp emp = new Emp(); while (rs.next()) { emp.setId(rs.getInt("id")); emp.setName(rs.getString("name")); emp.setPassword(rs.getString("password")); emp.setSex(rs.getString("sex")); emp.setDid(rs.getInt("did")); emp.setBirthday((Date) rs.getObject("birthday")); System.out.println(emp); return emp; } } catch (SQLException e) { e.printStackTrace(); } finally { DBHelper.close(conn, ps, rs); } return null; } public List<Emp> list() { Connection conn = DBHelper.getConn(); PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement("select e.*,d.`name` dname from emp e left join dept d on e.did =d.id\t"); rs = ps.executeQuery(); List<Emp> list = new ArrayList<>(); while (rs.next()) { Emp emp = new Emp(); emp.setId(rs.getInt("id")); emp.setName(rs.getString("name")); emp.setPassword(rs.getString("password")); emp.setSex(rs.getString("sex")); emp.setDid(rs.getInt("did")); emp.setDname(rs.getString("dname")); emp.setBirthday((Date) rs.getObject("birthday")); System.out.println(emp); list.add(emp); } return list; } catch (SQLException e) { e.printStackTrace(); } finally { DBHelper.close(conn, ps, rs); } return null; } public int del(Integer id) { int i = 0; Connection conn = DBHelper.getConn(); PreparedStatement ps = null; try { ps = conn.prepareStatement("delete from emp where id=?"); ps.setObject(1, id); i = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBHelper.close(conn, ps); } return i; } public Emp findById(Integer id) { // list() Connection conn = DBHelper.getConn(); PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement("select * from emp where id=?"); ps.setObject(1, id); rs = ps.executeQuery(); Emp emp = new Emp(); while (rs.next()) { emp.setId(rs.getInt("id")); emp.setName(rs.getString("name")); emp.setPassword(rs.getString("password")); emp.setSex(rs.getString("sex")); emp.setDid(rs.getInt("did")); emp.setBirthday((Date) rs.getObject("birthday")); System.out.println(emp); return emp; } } catch (SQLException e) { e.printStackTrace(); } finally { DBHelper.close(conn, ps, rs); } return null; } public int updata(String sql, Object[] obj) { int i = 0; Connection conn = DBHelper.getConn(); PreparedStatement ps = null; try { ps = conn.prepareStatement(sql); System.out.println(sql); for (int j = 0; j < obj.length; j++) { System.out.println(obj[j]); ps.setObject(j + 1, obj[j]); } i = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBHelper.close(conn, ps); } return i; } public List<Dept> findAll() { Connection conn = DBHelper.getConn(); PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement("select * from dept"); rs = ps.executeQuery(); List<Dept> list = new ArrayList<>(); while (rs.next()) { Dept dept = new Dept(); dept.setId(rs.getInt("id")); dept.setName(rs.getString("name")); System.out.println(dept); list.add(dept); } return list; } catch (SQLException e) { e.printStackTrace(); } finally { DBHelper.close(conn, ps, rs); } return null; } }
封装包:
package cn.hp.entity; import java.util.Date; public class Emp{ private Integer Id; private String Name; private String Password; private Date Birthday; private String Sex; private Integer Did; private String dname; public Emp(Integer id, String name, String password, Date birthday, String sex, Integer did, String dname) { Id = id; Name = name; Password = password; Birthday = birthday; Sex = sex; Did = did; this.dname = dname; } public Emp() { } public Integer getId() { return Id; } public void setId(Integer id) { Id = id; } public String getName() { return Name; } public void setName(String name) { Name = name; } public String getPassword() { return Password; } public void setPassword(String password) { Password = password; } public Date getBirthday() { return Birthday; } public void setBirthday(Date birthday) { Birthday = birthday; } public String getSex() { return Sex; } public void setSex(String sex) { Sex = sex; } public Integer getDid() { return Did; } public void setDid(Integer did) { Did = did; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } @Override public String toString() { return "Emp{" + "Id=" + Id + ", Name='" + Name + '\'' + ", Password='" + Password + '\'' + ", Birthday=" + Birthday + ", Sex='" + Sex + '\'' + ", Did=" + Did + ", dname='" + dname + '\'' + '}'; } }
package cn.hp.entity; public class Dept{ private Integer Id; private String Name; public Dept(Integer id, String name) { Id = id; Name = name; } public Dept() { } public Integer getId() { return Id; } public void setId(Integer id) { Id = id; } public String getName() { return Name; } public void setName(String name) { Name = name; } @Override public String toString() { return "Dept{" + "Id=" + Id + ", Name='" + Name + '\'' + '}'; } }
package cn.hp.service; import cn.hp.entity.Dept; import cn.hp.entity.Emp; import java.util.List; public interface EmpService { Emp login(String name, String password); List<Emp> list(); int del(Integer id); Emp findById(Integer id); int updata(String sql, Object[] obj); List<Dept> findAll(); }
接口:
package cn.hp.service;
import cn.hp.dao.EmpDao; import cn.hp.entity.Dept; import cn.hp.entity.Emp;
import java.util.List;
public class EmpServiceImp implements EmpService { EmpDao dao = new EmpDao(); @Override public Emp login(String name, String password) { return dao.login(name,password); }
@Override public List<Emp> list() { return dao.list(); }
@Override public int del(Integer id) { return dao.del(id); }
@Override public Emp findById(Integer id) { return dao.findById(id); }
@Override public int updata(String sql, Object[] obj) { return dao.updata(sql,obj); }
@Override public List<Dept> findAll() { return dao.findAll(); } } Servlet:
package cn.hp.servlet;
import cn.hp.entity.Dept; import cn.hp.entity.Emp; import cn.hp.service.EmpService; import cn.hp.service.EmpServiceImp;
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 java.io.IOException; import java.io.PrintWriter; import java.lang.annotation.Repeatable; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List;
@WebServlet("/EmpServlet") public class EmpServlet extends HttpServlet {
EmpService empService = new EmpServiceImp();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); String method = request.getParameter("method"); if (method.equals("del")) { del(request, response); } else if (method.equals("list")) { list(request, response); } else if (method.equals("edit")) {//修改前的查询,也就是数据回显 edit(request, response); } else if (method.equals("editUpp")) {//真实修改的方法 editUpp(request, response); } }
/** * ajax 异步查询数据,以json格式返回 * @param request * @param response */
private void editUpp(HttpServletRequest request, HttpServletResponse response) throws IOException { Integer id = Integer.valueOf(request.getParameter("id")); String name = request.getParameter("name"); String birthday = request.getParameter("birthday"); String sex = request.getParameter("sex"); String did = request.getParameter("did");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date parse = sdf.parse(birthday); Object[] obj = {name, parse, sex, did, id}; String sql = "update emp set name=?,birthday=?,sex=?,did=? where id = ?"; int i = empService.updata(sql, obj); System.out.println("i=" + i); } catch (ParseException e) { e.printStackTrace(); } //重定向 response.sendRedirect("/EmpServlet?method=list"); }
private void edit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取前台传递的id, 根据id查询数据 Integer id = Integer.valueOf(request.getParameter("id")); Emp emp = empService.findById(id); // 放到缓存中 request.getSession().setAttribute("emp", emp); System.out.println(emp); // 查询部门信息,为了在页面展示下拉列表 //为了快速实现效果,不单独创建dept业务成代码,但是你们进行实现的时候,要保证mvc List<Dept> detp = (List<Dept>) empService.findAll(); request.getSession().setAttribute("listDept", detp); // 并跳转到对应的页面 request.getRequestDispatcher("/WEB-INF/jsp/edit.jsp").forward(request, response); }
private void del(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Integer id = Integer.valueOf(request.getParameter("id")); int i = empService.del(id); System.out.println(i > 0 ? "成功!" : "失败!"); list(request, response); }
private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Emp> list = empService.list(); request.getSession().setAttribute("emps", list); request.getRequestDispatcher("/WEB-INF/jsp/home.jsp").forward(request, response); } }
package cn.hp.servlet; import cn.hp.entity.Emp; import cn.hp.service.EmpService; import cn.hp.service.EmpServiceImp; 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 java.io.IOException; @WebServlet("/LoginServlet")//controller public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8");//编码格式设置 //接收参数 String name = request.getParameter("name"); String password = request.getParameter("password"); EmpService empService = new EmpServiceImp(); Emp emp= empService.login(name,password ); if(emp!=null){ request.getSession().setAttribute("emp", emp); // request.getRequestDispatcher("/WEB-INF/jsp/home.jsp").forward(request, response); request.getRequestDispatcher("/EmpServlet?method=list").forward(request, response); }else{ request.getRequestDispatcher("/index.jsp").forward(request, response); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }
Dbhelper连接数据库
package cn.hp.util; import java.sql.*; public class DBHelper { //驱动 private static String driver = "com.mysql.jdbc.Driver"; //访问数据的链接路径 private static String url = "jdbc:mysql://mydb?useSSL=false&serverTimezone=UTC&characterEncoding=utf8"; private static String name = "root"; private static String pwd = "123456"; private static Connection conn; private static PreparedStatement ps; private static ResultSet rs; static { try { Class.forName(driver); System.out.println("驱动加载成功!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获取链接 */ public static Connection getConn() { try { conn = DriverManager.getConnection(url, name, pwd); System.out.println("数据库链接建立成功!"); } catch (SQLException e) { e.printStackTrace(); } return conn; } /** * 关闭资源 */ public static void close(Connection conn, PreparedStatement ps, ResultSet rs) { try { if (conn != null) conn.close(); if (ps != null) ps.close(); if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } } public static void close(Connection conn, PreparedStatement ps) { close(conn, ps, null); } public static void close(Connection conn) { close(conn, null, null); } public static void main(String[] args) { System.out.println(getConn()); } }
前台jsp页面不难,自己写