实现分页,添加部门,添加员工

1.创建数据库,并且主外键约束
CREATE DATABASE companydb;
USE companydb;
CREATE TABLE department(

dept_no  VARCHAR(10) NOT NULL PRIMARY KEY,
dept_name  VARCHAR(10) NOT NULL

)
INSERT INTO department(dept_no,dept_name)
VALUES(‘D001’,‘财务部’),
(‘D002’,‘设计部’)
CREATE TABLE employee(

emp_no  INT(10) NOT NULL   PRIMARY KEY NOT NULL,
emp_name  VARCHAR(20) NOT NULL,
emp_idcard VARCHAR(20) NOT NULL,
emp_phone VARCHAR(11),
emp_todate DATE,
dept_no  VARCHAR(10) NOT NULL

)
INSERT INTO employee(emp_no,emp_name,emp_idcard,emp_phone,emp_todate,dept_no)
VALUES(1,‘张三’,‘342159666702589695’,‘12345678998’,‘2018-05-02’,‘D001’),
(2,‘李四’,‘342159666702589695’,‘12345678998’,‘2018-05-02’,‘D002’)

ALTER TABLE employee ADD CONSTRAINT FK_ID_emp_no FOREIGN KEY(dept_no) REFERENCES department(dept_no);

SELECT * FROM employee INNER JOIN department ON employee.dept_no=department.dept_no
SELECT NOW()
INSERT INTO employee(emp_name,emp_idcard,emp_phone,emp_todate,dept_no) VALUES(‘000’,‘342425199708272424’,‘000’,NOW(),‘D001’);

二。jsp
home.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

首页

部门信息管理

查看部门

添加部门

员工信息管理

查看员工

添加员工

dept_list.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 部门
	</c:forEach>
	<tr>
</table>
部门编号部门名称
${dept.dept_no}${dept.dept_name}

dept_add.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

添加部门

部门名称:

emp_list.jsp

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

所有员工
</c:if>
<form action="">
	所属部门: <select name="dept_no" style="width: 160px">
		<c:forEach items="${deptList}" var="dept">
			<option value="${dept.dept_no}">${dept.dept_name}</option>
		</c:forEach>
	</select>
</form>

<table width="100%" border="0" style="text-align: center;">
	<tr>
		<td>编号</td>
		<td>姓名</td>
		<td>身份证</td>
		<td>联系电话</td>
		<td>入职时间</td>
		<td>所属部门</td>
	</tr>
	<c:forEach items="${empList}" var="emp">
		<tr>
			<td>${emp.emp_no}</td>
			<td>${emp.emp_name}</td>
			<td>${emp.emp_idcard}</td>
			<td>${emp.emp_phone}</td>
			<td>${emp.emp_todate}</td>
			<td>${emp.dept.dept_name}</td>
		</tr>
	</c:forEach>
</table>


<table width="100%">

	<tr>

		
		
		<td>当前页数:${pageBean.currentPage } 共${ pageBean.totalPage}页</td>
		
		<td><a href="EmployeeListServlet?currentPage=1">第一页</a></td>
		<td><a href="EmployeeListServlet?currentPage=${pageBean.currentPage+1 }">下一页</a></td>
		<td><a href="EmployeeListServlet?currentPage=${pageBean.currentPage-1 }">上一页</a></td>
		
		

	</tr>
</table>

emp_add.jsp

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

添加员工
</c:if>

	<form action="EmpAddServlet" method="post">
		<p>
			员工姓名:<input type="text" name="emp_name">
		</p>
		<p>
			身份证号:<input type="text" name="emp_idcard">
		</p>
		<p>
			联系电话:<input type="text" name="emp_phone">
		</p>
		<p>
			所属部门:<select name="dept_no" style="width: 160px">
				<c:forEach items="${deptList}" var="dept">
					<option value="${dept.dept_no}">${dept.dept_name}</option>
				</c:forEach>
			</select>
		</p>
		<p>
			<input type="submit" value="添加部门">
		</p>
	</form>

com.company.dao
DepartmentDaoImpl.java

package com.company.dao;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;

import com.company.entiy.Department;

public class DepartmentDaoImpl implements DepartmentDao {

@Override
public int insertDept(Department dept) {
	String sql="INSERT INTO department VALUES( ?,?)";
	QueryRunner qr=new QueryRunner(MyDBUtils.ds);
	int n=0;
	try {
		n=qr.update(sql, dept.getDept_no(),dept.getDept_name());
	} catch (Exception e) {
	   System.out.println("DepartmentDaoImpl:insertDept()Error!");
	   e.printStackTrace();
	}
	return n;
}

@Override
public List<Department> selectAllDept() {
	String sql ="select * from department";
	QueryRunner qr=new QueryRunner(MyDBUtils.ds);
	try {
		return  qr.query(sql,new BeanListHandler<Department>(Department.class)); 
	} catch (Exception e) {
		System.out.println("DepartmentDaoImpl:selectAllDept()Error!");
		e.printStackTrace();
	}
	return null;
}

public String  selectMaxDeptNo(){
	String sql ="SELECT  MAX(dept_no) as maxdeptno  FROM  department";
	QueryRunner qr =new QueryRunner(MyDBUtils.ds);
	try {
	  return qr.query(sql, new ScalarHandler<String>("maxdeptno") );	
	} catch (Exception e) {
		e.printStackTrace();
	}
	return null;
}	

}

EmployeeeDaoImpl.java
package com.company.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.company.entiy.Department;
import com.company.entiy.Employee;
import com.company.entiy.PageBean;

public class EmployeeeDaoImpl implements EmployeeDao {

@Override
public int insertEmployee(Employee emp) {
	String sql = "INSERT INTO employee(`emp_name`,`emp_idcard`,`emp_phone`,`emp_todate`,`dept_no`) VALUES(?,?,?,NOW(),?)";
	QueryRunner qr = new QueryRunner(MyDBUtils.ds);
	try {
		return qr.update(sql, emp.getEmp_name(), emp.getEmp_idcard(),
				emp.getEmp_phone(), emp.getDept_no());
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return 0;
}

@Override
public List<Employee> selectAllEmployee(String... params) {

	String sql = "SELECT  * FROM  employee " + " INNER JOIN department "
			+ " ON  employee.`dept_no`=department.`dept_no`";

	return this.selectEmp(sql);

}

@Override
public List<Employee> selectAllEmployee(PageBean pageBean) {

	String sql = "SELECT  * FROM  employee " + " INNER JOIN department "
			+ " ON  employee.`dept_no`=department.`dept_no` limit ?,?";
	QueryRunner runner = new QueryRunner(MyDBUtils.ds);

	if (pageBean.getCurrentPage() == 0) {
		pageBean.setCurrentPage(1);
	}

	int startIndex = (pageBean.getCurrentPage() - 1)
			* pageBean.getPageRows();

	try {
		return runner.query(sql, new ResultSetHandler<List<Employee>>() {

			@Override
			public List<Employee> handle(ResultSet rs) throws SQLException {

				List<Employee> list = new ArrayList<Employee>();
				while (rs.next()) {
					Employee emp = new Employee();
					emp.setEmp_no(rs.getInt("emp_no"));
					emp.setEmp_name(rs.getString("emp_name"));
					emp.setEmp_idcard(rs.getString("emp_idcard"));
					emp.setEmp_phone(rs.getString("emp_phone"));
					emp.setEmp_todate(rs.getString("emp_todate"));

					Department dept = new Department();
					dept.setDept_no(rs.getString("dept_no"));
					dept.setDept_name(rs.getString("dept_name"));
					emp.setDept(dept);

					System.out.println(rs.getString("dept_name"));
					list.add(emp);

				}

				return list;
			}

		}, startIndex, pageBean.getPageRows());
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return null;

}

@Override
public List<Employee> selectEmployeeByDept(Department dept) {
	String sql = "SELECT  * FROM  employee " + " INNER JOIN department "
			+ " ON  employee.dept_no=department.dept_no"
			+ " WHERE employee.dept_no='" + dept.getDept_no() + "'";
	return null;
}

@Override
public List<Employee> selectEmployeeByPage(int curPage, int pageSize) {

	return null;
}

private List<Employee> selectEmp(String sql) {
	try {
		QueryRunner qr = new QueryRunner(MyDBUtils.ds);
		return qr.query(sql, new ResultSetHandler<List<Employee>>() {
			@Override
			public List<Employee> handle(ResultSet rs) throws SQLException {
				List<Employee> list = new ArrayList<Employee>();
				while (rs.next()) {
					Employee emp = new Employee();
					emp.setEmp_no(rs.getInt("emp_no"));
					emp.setEmp_name(rs.getString("emp_name"));
					emp.setEmp_idcard(rs.getString("emp_idcard"));
					emp.setEmp_phone(rs.getString("emp_phone"));
					emp.setEmp_todate(rs.getString("emp_todate"));

					Department dept = new Department();
					dept.setDept_no(rs.getString("dept_no"));
					dept.setDept_name(rs.getString("dept_name"));
					emp.setDept(dept);

					System.out.println(rs.getString("dept_name"));
					list.add(emp);
				}
				return list;
			}
		});
	} catch (Exception e) {
		e.printStackTrace();
	}
	return null;
}

@Override
public int selectTotalRows() {
	// TODO Auto-generated method stub
	return 0;
}

}

DepartmentDao.java
package com.company.dao;

import java.util.List;

import com.company.entiy.Department;

public interface DepartmentDao {
public int insertDept(Department dept);
public List selectAllDept();
public String selectMaxDeptNo();
}
EmployeeDao
package com.company.dao;

import java.util.List;

import com.company.entiy.Department;
import com.company.entiy.Employee;
import com.company.entiy.PageBean;

public interface EmployeeDao {

public List<Employee>  selectAllEmployee(String... params);
public List<Employee>  selectAllEmployee(PageBean pageBean);
public List<Employee>  selectEmployeeByDept(Department dept);

public List<Employee>  selectEmployeeByPage(int curPage,int pageSize);
public int selectTotalRows();

public int insertEmployee(Employee emp);

}

com.company.entiy

Department
package com.company.entiy;

import java.util.ArrayList;
import java.util.List;

public class Department {
private String dept_no;
private String dept_name;

private List<Employee> emp_list =new ArrayList<Employee>();  //һ�����Ű���N��Ա��

public List<Employee> getEmp_list() {
	return emp_list;
}
public void setEmp_list(List<Employee> emp_list) {
	this.emp_list = emp_list;
}
public String getDept_no() {
	return dept_no;
}
public void setDept_no(String dept_no) {
	this.dept_no = dept_no;
}
public String getDept_name() {
	return dept_name;
}
public void setDept_name(String dept_name) {
	this.dept_name = dept_name;
}

}

Employee
package com.company.entiy;

public class Employee {
private int emp_no;
private String emp_name;
private String emp_idcard;
private String emp_phone;
private String emp_todate;
private String dept_no;

private Department dept;//

public Department getDept() {
	return dept;
}

public void setDept(Department dept) {
	this.dept = dept;
}

public int getEmp_no() {
	return emp_no;
}

public void setEmp_no(int emp_no) {
	this.emp_no = emp_no;
}

public String getEmp_name() {
	return emp_name;
}

public void setEmp_name(String emp_name) {
	this.emp_name = emp_name;
}

public String getEmp_idcard() {
	return emp_idcard;
}

public void setEmp_idcard(String emp_idcard) {
	this.emp_idcard = emp_idcard;
}

public String getEmp_phone() {
	return emp_phone;
}

public void setEmp_phone(String emp_phone) {
	this.emp_phone = emp_phone;
}

public String getEmp_todate() {
	return emp_todate;
}

public void setEmp_todate(String emp_todate) {
	this.emp_todate = emp_todate;
}

public String getDept_no() {
	return dept_no;
}

public void setDept_no(String dept_no) {
	this.dept_no = dept_no;
}

}
PageBean
package com.company.entiy;

import java.util.List;

public class PageBean {
int currentPage=1;//当前页码
int pageRows=3;//每页几条数据
int totalRows;//总数据行数
int totalPage;//总页码
List<?> pageData;//当前页数据

public int getCurrentPage() {
	return currentPage;
}
public void setCurrentPage(int currentPage) {
	

	
	if (currentPage<=0) {
		
		currentPage=1;
	}else if (currentPage>getTotalPage()) {
		this.currentPage = totalPage;
	}else {
		this.currentPage = currentPage;
	}
}
public int getPageRows() {
	return pageRows;
}
public void setPageRows(int pageRows) {
	this.pageRows = pageRows;
}
public int getTotalRows() {
	return totalRows;
}
public void setTotalRows(int totalRows) {
	this.totalRows = totalRows;
}
public int getTotalPage() {
	
	if ((totalRows%pageRows)==0) {
		return totalRows/pageRows;
	}else {
		return (totalRows/pageRows)+1;
	}
	
}
public void setTotalPage(int totalPage) {
	this.totalPage = totalPage;
}
public List<?> getPageData() {
	return pageData;
}
public void setPageData(List<?> pageData) {
	this.pageData = pageData;
}

}
com.company.service

DepartmentService
package com.company.service;

import java.util.List;

import com.company.dao.DepartmentDao;
import com.company.dao.DepartmentDaoImpl;

import com.company.entiy.Department;

public class DepartmentService {

  DepartmentDao deptDao =new DepartmentDaoImpl();
 
  public boolean addDept(Department dept){
	  //
	 String curDeptNo="D001";
	 String deptMaxNo=  deptDao.selectMaxDeptNo();
	 if(deptMaxNo!=null){
		      //D003--"003" ---3+1
		      //D009--"009" ---9+1
		  int num =Integer.parseInt(deptMaxNo.substring(1))+1;
		     //D004  --- D010
		  curDeptNo="D"+String.format("%03d", num) ; //005  010
	 }
	  dept.setDept_no(curDeptNo);
	  //
	  int n= deptDao.insertDept(dept);
	  return n>0;
  }
  
  public List<Department> getAllDept(){
	  
	  return deptDao.selectAllDept();
  }

}

EmployeeService
package com.company.service;

import java.util.List;

import com.company.dao.EmployeeDao;
import com.company.dao.EmployeeeDaoImpl;
import com.company.entiy.Employee;
import com.company.entiy.PageBean;

public class EmployeeService {

EmployeeDao empDao =new EmployeeeDaoImpl();

public List<Employee>  getAllEmployee(){
	return empDao.selectAllEmployee();
}
public List<Employee>  getAllEmployee(PageBean pageBean){
	return empDao.selectAllEmployee(pageBean);
}
/*
 *添加新员工 ,业务层
 * 
 * */
public boolean addEmployee(Employee emp) {
	
	  int n= empDao.insertEmployee(emp);
	return n>0;
}

}
com.company.servlet

DeptListServlet
package com.company.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.company.entiy.Department;
import com.company.service.DepartmentService;

/**

  • Servlet implementation class DeptListServlet
    */
    @WebServlet("/DeptListServlet")
    public class DeptListServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • Default constructor.
      */
      public DeptListServlet() {
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
    •  response)
      

    */
    protected void doGet(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    // 查询所有的部门
    DepartmentService deptService = new DepartmentService();
    List detpList = deptService.getAllDept();
    System.out.println(“detpList=”+detpList.size());

     request.getSession().setAttribute("deptList", detpList);
    
     String flag = request.getParameter("flag");
     System.out.println("DeptListServlet--flag="+flag);
     if (flag == null) {
     	// 跳转到dept_list.jsp显示
     	response.sendRedirect("dept_list.jsp");
     } else if (flag.equals("1")) {
     	// 跳转到emp_list.jsp显示
     	response.sendRedirect("emp_list.jsp");
     } else if (flag.equals("2")) {
     	// 跳转到emp_add.jsp显示
     	response.sendRedirect("emp_add.jsp");
     }
    

    }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
    •  response)
      

    */
    protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {

    }

}

EmployeeListServlet
package com.company.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.company.entiy.Department;
import com.company.entiy.Employee;
import com.company.entiy.PageBean;
import com.company.service.DepartmentService;
import com.company.service.EmployeeService;

/**

  • Servlet implementation class EmpListServlet
    */
    @WebServlet("/EmployeeListServlet")
    public class EmployeeListServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public EmployeeListServlet() {
    super();
    // TODO Auto-generated constructor stub
    }

    protected void doGet(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(“text/html;charset=utf-8”);
    request.setCharacterEncoding(“utf-8”);

     PageBean pageBean = new PageBean();
    
     pageBean.setTotalRows(new EmployeeService().getAllEmployee().size());
     int totalPage = pageBean.getTotalPage();
     System.out.println("总页数=" + totalPage);
     // Session
    
     if (request.getParameter("currentPage") != null) {
     	if (request.getParameter("currentPage").equals("0")) {
     		pageBean.setCurrentPage(1);
    
     	} else {
     		pageBean.setCurrentPage(Integer.valueOf(request
     				.getParameter("currentPage")));
     	}
     } else {
     	pageBean.setCurrentPage(1);
     }
    
     EmployeeService empService = new EmployeeService();
     List<Employee> empList = empService.getAllEmployee(pageBean);
    
     
     DepartmentService deptService = new DepartmentService();
     List<Department> departments = deptService.getAllDept();
     // 跳转到list.jsp
     request.getSession().setAttribute("departments", departments);
     request.getSession().setAttribute("empList", empList);
     
     
     
     // 跳转到list.jsp
     request.getSession().setAttribute("pageBean", pageBean);
     response.sendRedirect("emp_list.jsp");
    

    }

    protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {

     response.setContentType("text/html;charset=utf-8");
     request.setCharacterEncoding("utf-8");
     doGet(request, response);
    

    }

}
DeptAddServlet
package com.company.servlet;

import java.io.IOException;

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 org.apache.commons.beanutils.BeanUtils;

import com.company.entiy.Department;
import com.company.service.DepartmentService;

/**

  • Servlet implementation class DeptAddServlet
    */
    @WebServlet("/DeptAddServlet")
    public class DeptAddServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public DeptAddServlet() {
      super();
      // TODO Auto-generated constructor stub
      }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

     request.setCharacterEncoding("utf-8");
     
     Department deptObj =new Department();
     try {
     	BeanUtils.populate(deptObj, request.getParameterMap());
     } catch (Exception e) {
     	e.printStackTrace();
     }
     System.out.println(deptObj.getDept_no());
     System.out.println(deptObj.getDept_name());
     
     //调用Seerivce的方法 完成 添加的功能
     DepartmentService   deptService =new DepartmentService();
     deptService.addDept(deptObj);
     response.sendRedirect("DeptListServlet");
    

    }

}

EmpAddServlet
package com.company.servlet;

import java.io.IOException;

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 org.apache.commons.beanutils.BeanUtils;

import com.company.entiy.Employee;
import com.company.service.EmployeeService;

/**

  • Servlet implementation class EmpAddServlet
    */
    @WebServlet("/EmpAddServlet")
    public class EmpAddServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public EmpAddServlet() {
      super();
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
    •  response)
      

    */
    protected void doGet(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
    •  response)
      

    */
    protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding(“utf-8”);
    Employee emp = new Employee();
    try {
    BeanUtils.populate(emp, request.getParameterMap());
    } catch (Exception e) {
    e.printStackTrace();
    }
    // 调用业务层相关类的方法,完成员工添加这个功能
    EmployeeService empService = new EmployeeService();
    empService.addEmployee(emp);
    // 添加完成后
    // 跳转到员工添加页面
    // 或者 跳转到员工列显页面
    response.sendRedirect(“EmployeeListServlet”);

    }

}
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值