1.dao类相应添加方法:
/**
* 2.添加员工
* @param employee
*/
public boolean save(Employee employee){
StringBuffer sql=new StringBuffer("insert into employee"+" values(emp_seq.nextval,?,?,?,?,?,?,?)");
try (Connection conn = JdbcUtil.getConnection();
PreparedStatement ps = conn.prepareStatement(sql.toString())
) {
ps.setString(1,employee.getEname());
ps.setString(2,employee.getJob());
if (employee.getMgr()!=null){
ps.setInt(3,employee.getMgr());
}else {
ps.setInt(3,Types.INTEGER);
}
if (employee.getHiredate()!=null){
ps.setDate(4, new java.sql.Date(employee.getHiredate().getTime()));
}else {
ps.setNull(4, Types.DATE);
}
ps.setDouble(5,employee.getSal());
if (employee.getComm()!=null){
ps.setDouble(6,employee.getComm());
}else {
ps.setDouble(6,Types.DOUBLE);
}
ps.setInt(7,employee.getDeptno());
int row = ps.executeUpdate();
return row==1?true:false;
} catch (SQLException e) {
System.out.println("添加员工失败:"+e.getMessage());
}
return false;
}
2.做添加处理的jsp页面doAddEmployee.jsp:
<%
// request.setCharacterEncoding("utf-8");
// 获取请求参数
String ename=request.getParameter("ename");
String job=request.getParameter("job");
String mgr=request.getParameter("mgr");
String hiredate=request.getParameter("hiredate");
String sal=request.getParameter("sal");
String comm=request.getParameter("comm");
String deptno=request.getParameter("deptno");
// 将请求参数封装成实体
Employee employee=new Employee();
employee.setEname(ename);
employee.setJob(job);
if (StringUtils.isNotBlank(mgr)){
employee.setMgr(Integer.valueOf(mgr));
}
if (StringUtils.isNotBlank(hiredate)){
Date date = DateUtils.parseDate(hiredate, "yyyy-MM-dd", "yyyy/MM/dd");
employee.setHiredate(date);
}
if (StringUtils.isNotBlank(sal)){
employee.setSal(Double.valueOf(sal));
}
if (StringUtils.isNotBlank(comm)){
employee.setComm(Double.valueOf(comm));
}
if (StringUtils.isNotBlank(deptno)){
employee.setDeptno(Integer.valueOf(deptno));
}
boolean save = new EmployeeDao().save(employee);
if (save){
// 采用重定向,否则如果客户端重新加载的话,会重复提交表单
response.sendRedirect(request.getContextPath()+"/doQueryForm.jsp");
}else {
response.sendRedirect(request.getContextPath()+"/addEmployee.jsp?result=0");
}
%>
3.做添加的页面addEmployee.jsp:
<%@ page import="org.apache.commons.lang3.StringUtils" %><%--
Created by IntelliJ IDEA.
User: shen
Date: 2019/7/31
Time: 18:47
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加员工</title>
<!-- 引入 Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<br>
<div class="container">
<%
if (StringUtils.equalsIgnoreCase(request.getParameter("result"),("0"))){
%>
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<div class="alert alert-danger alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
添加员工信息失败,请重新检查并提交。。。
</div>
</div>
</div>
<%
}
%>
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<form class="form-horizontal" action="doAddEmployee.jsp" method="get">
<div class="form-group">
<label for="inputEmpno" class="col-sm-2 control-label">员工编号</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputEmpno" disabled placeholder="员工编号系统自动生成" />
</div>
</div>
<div class="form-group">
<label for="ename" class="col-sm-2 control-label">姓名</label>
<div class="col-sm-10">
<input type="text" name="ename" class="form-control" id="ename" placeholder="请输入姓名"
required/>
</div>
</div>
<div class="form-group">
<label for="inputJob" class="col-sm-2 control-label">工作</label>
<div class="col-sm-10">
<input type="text" name="job" class="form-control" id="inputJob" placeholder="请输入工作" required/>
</div>
</div>
<div class="form-group">
<label for="mgr" class="col-sm-2 control-label">经理</label>
<div class="col-sm-10">
<select name="mgr" class="form-control" id="mgr" >
<option value="">--请选择--</option>
</select>
</div>
</div>
<div class="form-group">
<label for="inputHiredate" class="col-sm-2 control-label">入职日期</label>
<div class="col-sm-10">
<input type="date" name="hiredate" class="form-control" id="inputHiredate" placeholder="请输入入职日期"/>
</div>
</div>
<div class="form-group">
<label for="inputSal" class="col-sm-2 control-label">工资</label>
<div class="col-sm-10">
<input type="text" name="sal" class="form-control" id="inputSal" placeholder="请输入工资" required/>
</div>
</div>
<div class="form-group">
<label for="inputComm" class="col-sm-2 control-label">奖金</label>
<div class="col-sm-10">
<input type="text" name="comm" class="form-control" id="inputComm" placeholder="请输入奖金"/>
</div>
</div>
<div class="form-group">
<label for="deptno" class="col-sm-2 control-label">部门</label>
<div class="col-sm-10">
<select name="deptno" class="form-control" id="deptno" required>
<option value="">--请选择--</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">保存</button>
<button type="reset" class="btn btn-default">重置</button>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="js/jquery-2.2.4.js"></script>
<script>
$(function () {
$.getJSON("loadEmployeeMgr.jsp",{},function (res) {
let mgrSelect = $('#mgr');
console.log(res);
res.forEach((ele)=>{
const option = new Option(ele.ename,ele.empno);
mgrSelect.append(option);
});
});
});
</script>
<script>
$(function () {
$.getJSON("loadDepartment.jsp",{},function (res) {
// 获取下拉列表框
let deptnoSelect=$('#deptno');
// 循环每一个查询出来的json
res.forEach((ele)=>{
/*const option='<option value="+ele.deptno">'+ele.dname+'</option>';*/
const option = new Option(ele.dname,ele.deptno);
// 将option加入到下拉列表
deptnoSelect.append(option);
});
});
})
</script>
</body>
</html>
4.运行结果: