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页面不难,自己写
这篇博客主要介绍了如何在JSP中利用Empdao类进行增删改查操作。通过EmpServiceImp实现了EmpDao接口,提供了login、list、del、findById、updata和findAll等方法。Servlet部分展示了EmpServlet的doGet和doPost方法,处理不同请求,如删除、查询和编辑员工信息。此外,还涉及了日期转换和数据回显的功能。
1040

被折叠的 条评论
为什么被折叠?



