#EmpDaoImpl.java
(看getFind方法)
package com.neu.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import com.mysql.fabric.xmlrpc.base.Array;
import com.neu.entity.Dept;
import com.neu.entity.Emp;
public class EmpDaoImpl implements EmpDao {
@Override
public List<Emp> getAll() throws Exception {
Connection connection = JDBCUtil.getConnection();
String sql = "select * from emp";
ResultSet rs = JDBCUtil.executeQuery(connection, sql, null);
List<Emp> list = new ArrayList<>();
Emp emp=null;
Integer empno;
String ename;
Date hiredate;
String job;
Integer mgr;
Double sal;
Double comm;
int deptno;
Dept dept;
DeptDao deptDao = new DeptDaoImpl();
while(rs.next()) {
empno=rs.getInt("empno");
ename=rs.getString("ename");
hiredate=rs.getDate("hiredate");
job=rs.getString("job");
mgr=rs.getInt("mgr");
sal= rs.getDouble("sal");
comm=rs.getDouble("comm");
deptno=rs.getInt("deptno");
dept = deptDao.getById(deptno);
emp=new Emp(empno, ename, hiredate, job, mgr, sal, comm, dept);
list.add(emp);
}
JDBCUtil.closeConnection(connection);
return list;
}
@Override
public Emp getById(int empno) throws Exception {
Connection connection = JDBCUtil.getConnection();
String sql = "select * from emp where empno = ?";
ResultSet rs = JDBCUtil.executeQuery(connection, sql, new Object[] {empno});
Emp emp=null;
String ename;
Date hiredate;
String job;
Integer mgr;
Double sal;
Double comm;
int deptno;
Dept dept;
DeptDao deptDao = new DeptDaoImpl();
if(rs.next()) {
ename=rs.getString("ename");
hiredate=rs.getDate("hiredate");
job=rs.getString("job");
mgr=rs.getInt("mgr");
sal= rs.getDouble("sal");
comm=rs.getDouble("comm");
deptno=rs.getInt("deptno");
dept = deptDao.getById(deptno);
emp=new Emp(empno, ename, hiredate, job, mgr, sal, comm, dept);
}
JDBCUtil.closeConnection(connection);
return emp;
}
@Override
public int getInsert(Emp emp) throws Exception {
String sql = "insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(?,?,?,?,?,?,?,?)";
Object[] params = {
emp.getEmpno(),
emp.getEname(),
emp.getJob(),
emp.getMgr(),
emp.getHiredate(),
emp.getSal(),
emp.getComm(),
emp.getDept().getDeptno()
};
int n = JDBCUtil.executeUpdate(sql, params);
return n;
}
@Override
public int getUpdate(Emp emp) throws Exception {
String sql = "update emp set ename = ?,job=?,mgr=?,hiredate=?,sal=?,comm=?,deptno=? where empno=?";
Object[] params = {
emp.getEname(),
emp.getJob(),
emp.getMgr(),
emp.getHiredate(),
emp.getSal(),
emp.getComm(),
emp.getDept().getDeptno(),
emp.getEmpno(),
};
int n = JDBCUtil.executeUpdate(sql, params);
return n;
}
@Override
public int getDelete(int empno) throws Exception {
String sql = "delete from emp where empno = ?";
int n = JDBCUtil.executeUpdate(sql, new Object[] {empno});
return n;
}
@Override
public int getbadel(String[] empnos) throws Exception {
String s = Arrays.toString(empnos).replace("[", "(").replace("]", ")");
String sql = "delete from emp where empno in"+s;
int n = JDBCUtil.executeUpdate(sql, null);
return n;
}
@Override
public List<Emp> getFind(Emp emp) throws Exception {
StringBuilder stb = new StringBuilder();
stb.append("select * from emp where 1=1 "); //1=1后面要有一个空格
if(!emp.getEname().trim().equals("")) { //trim()去掉字符串两端的空格
stb.append("and ename = '"+emp.getEname().trim()+"'");
}
if(!emp.getJob().trim().equals("")) {
stb.append("and job = '"+emp.getJob().trim()+"'");
}
if(!(emp.getDept()==null)) {
stb.append("and deptno = "+emp.getDept().getDeptno());
}
Connection connection = JDBCUtil.getConnection();
String sql = stb.toString();
ResultSet rs = JDBCUtil.executeQuery(connection, sql, null);
List<Emp> list = new ArrayList<>();
Integer empno;
String ename;
Date hiredate;
String job;
Integer mgr;
Double sal;
Double comm;
int deptno;
Dept dept;
DeptDao deptDao = new DeptDaoImpl();
while(rs.next()) {
empno=rs.getInt("empno");
ename=rs.getString("ename");
hiredate=rs.getDate("hiredate");
job=rs.getString("job");
mgr=rs.getInt("mgr");
sal= rs.getDouble("sal");
comm=rs.getDouble("comm");
deptno=rs.getInt("deptno");
dept = deptDao.getById(deptno);
emp=new Emp(empno, ename, hiredate, job, mgr, sal, comm, dept);
list.add(emp);
}
JDBCUtil.closeConnection(connection);
return list;
}
}
#findEmpServlet.java
package com.neu.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 com.neu.entity.Dept;
import com.neu.entity.Emp;
import com.neu.service.DeptService;
import com.neu.service.DeptServiceImpl;
import com.neu.service.EmpService;
import com.neu.service.EmpServiceImpl;
/**
* Servlet implementation class findEmpServlet
*/
@WebServlet("/findEmp")
public class findEmpServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String ename = request.getParameter("ename");
String job = request.getParameter("job");
int deptno =Integer.parseInt(request.getParameter("deptno"));
Emp emp = new Emp();
emp.setEname(ename);
emp.setJob(job);
DeptService deptService = new DeptServiceImpl();
Dept dept=null;
try {
dept = deptService.getById(deptno);
} catch (Exception e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
emp.setDept(dept);
EmpService empService = new EmpServiceImpl();
try {
List<Emp> list = empService.getFind(emp);
request.setAttribute("list", list);
List<Dept> deptlist = deptService.getAll();
request.setAttribute("deptlist", deptlist);
request.getRequestDispatcher("WEB-INF/jsp/emp/getAll.jsp").forward(request, response);
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
#getAll.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function del(empno) {
var b=confirm("是否删除?");
if(b){
location.href="${ pageContext.request.contextPath }/DeleteEmp?empno="+empno;
}
}
function bat() {
var nos = document.getElementsByName("no");
var sum = 0;
for(var i = 0;i < nos.length;i++ ){
if(nos[i].checked){
sum++;
}
}
if(sum==0){
alert("请选择删除的员工!");
return false;
}
return confirm("是否删除选中的员工!");
}
</script>
</head>
<body>
<form action="${ pageContext.request.contextPath }/empServlet?method=find" method="post">
员工姓名:<input type="text" name="ename" value="${ param.ename }">
员工岗位:<input type="text" name="job" value="${ param.job }">
部门:<select name="deptno">
<option value="0">-请选择-</option>
<c:forEach items="${ deptlist }" var="dept">
<option value="${dept.deptno }" ${ param.deptno==dept.deptno?"selected":"" }>${dept.dname }</option>
</c:forEach>
</select>
<input type="submit" value="查询">
</form>
<form action="${ pageContext.request.contextPath }/badelEmpno" method="post" onsubmit="return bat()">
<table border="1" width="700">
<c:forEach items="${ list }" var="emp">
<tr>
<td><input type="checkbox" value="${ emp.empno }" name="no"> </td>
<td>${ emp.empno }</td>
<td>${ emp.ename }</td>
<td>${ emp.job }</td>
<td>${ emp.mgr }</td>
<td><fmt:formatDate value="${ emp.hiredate }" pattern="yyyy-MM-dd"/></td>
<td>${ emp.sal }</td>
<td>${ emp.comm }</td>
<td>${ emp.dept.dname }</td>
<td>
<a href="${ pageContext.request.contextPath }/EditEmpById?empno=${ emp.empno }">编辑</a>
</td>
<td>
<a href="JavaScript:del(${ emp.empno })">删除</a>
</td>
</tr>
</c:forEach>
<tr align="center"><td colspan="11"><a href="${ pageContext.request.contextPath }/plgm">[添加]</a> <input type="submit" value="批量删除"></td></tr>
</table>
</form>
</body>
</html>