Servlet
添加员工功能
思路
- 数据在哪里,如何处理这些数据
- insert into …
- 使用JDBC操作数据库
- EmpDao封装插入操作,saveEmp
- 利用表单收集数据
- 利用Servlet接收数据,调用saveEmp完成操作
原理:
案例步骤
- 创建数据层访问方法
/**
* 将emp对象中的数据保存到数据库中
* @param emp 代表新添加的数据
*/
public void saveEmp(Emp emp) {
String sql = "insert into emp "
+ "(empno, ename, job, mgr, "
+ "hiredate, sal, comm, deptno) "
+ "values (?,?,?,?,?,?,?,?)";
Connection conn = null;
try {
conn = DBUtil.getConnection();
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1, emp.getEmpno());
ps.setString(2, emp.getEname());
ps.setString(3, emp.getJob());
ps.setInt(4, emp.getMgr());
ps.setDate(5, emp.getHiredate());
ps.setDouble(6, emp.getSal());
ps.setDouble(7, emp.getComm());
ps.setInt(8, emp.getDeptno());
int n = ps.executeUpdate();
if(n!=1) {
throw new RuntimeException("插入失败!");
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}finally {
DBUtil.close(conn);
}
}
- 测试
@Test
public void testSaveEmp() {
long now = System.currentTimeMillis();
Emp emp=new Emp(8000, "Tom", "端茶的", 7839,
new Date(now), 2000.0, 100.0, 10);
EmpDao dao = new EmpDao();
dao.saveEmp(emp);
}
-
利用模板starter.html 创建add-emp.html
核心代码
<div class="row"> <!-- left column --> <div class="col-md-8"> <!-- general form elements --> <div class="box box-primary"> <div class="box-header with-border"> <h3 class="box-title">新员工信息</h3> </div> <!-- /.box-header --> <!-- form start --> <form role="form" action="saveEmp" method="post"> <div class="box-body"> <div class="form-group"> <label for="empno">员工号</label> <input type="text" class="form-control" id="empno" placeholder="输入新员工号" name="empno"> </div> <div class="form-group"> <label for="ename">员工名</label> <input type="text" class="form-control" id="ename" placeholder="输入员工名" name="ename"> </div> <div class="form-group"> <label for="job">工作</label> <input type="text" class="form-control" id="job" placeholder="输入工作" name="job"> </div> <div class="form-group"> <label for="hiredate">入职日期</label> <input type="date" class="form-control" id="hiredate&