根据部分条件查询 dao和servlet的编写方法

#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>















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值