使用纯粹的Servlet完成单表【对部门的】的增删改查操作。(B/S结构的。)
实现步骤
-
第一步:准备一张数据库表。(sql脚本)
# 部门表 drop table if exists ndept; create table ndept( deptno int primary key, dname varchar(255), loc varchar(255), principal varchar(255) ); insert into dept(detno, dname, loc, principal) values(10, '销售部', '北京','张三'); insert into dept(detno, dname, loc, principal) values(20, '研发部', '上海','李四'); insert into dept(detno, dname, loc, principal) values(30, '技术部', '广州','王五'); insert into dept(detno, dname, loc, principal) values(40, '媒体部', '深圳','赵六'); commit; select * from ndept;
-
第二步:准备一套HTML页面(项目原型)【前端开发工具使用HBuilder】
-
把HTML页面准备好然后将HTML页面中的链接都能够跑通。(页面流转没问题。)
-
应该设计的页面
-
欢迎页面:index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>欢迎使用本页面</title> </head> <body> <h1>欢迎使用本页面</h1> <a href="list.html">查看部门列表</a> </body> </html>
-
列表页面:list.html(以列表页面为核心,展开其他操作。)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>列表页面</title> </head> <body> <h1 align="center">部门列表</h1> <hr> <table border="1px" align="center" width="50%"> <tr> <th>序号</th> <th>部门编号</th> <th>部门名字</th> <th>部门地址</th> <th>操作</th> </tr> <tr> <td>1</td> <td>10</td> <td>销售部</td> <td>北京</td> <td> <a href="javascript:void(0)" onclick="window.confirm('确认删除该部门信息吗?')">删除部门</a> <a href="edit.html">修改部门</a> <a href="detail.html">查看详情</a> </td> </tr> <tr> <td>2</td> <td>20</td> <td>研发部</td> <td>上海</td> <td> <a href="javascript:void(0)" onclick="window.confirm('确认删除该部门信息吗?')">删除部门</a> <a href="edit.html">修改部门</a> <a href="detail.html">查看详情</a> </td> </tr> <tr> <td>3</td> <td>30</td> <td>技术部</td> <td>广州</td> <td> <a href="javascript:void(0)" onclick="window.confirm('确认删除该部门信息吗?')">删除部门</a> <a href="edit.html">修改部门</a> <a href="detail.html">查看详情</a> </td> </tr> </table> <hr> <a href="add.html">新增部门</a> </body> </html>
-
新增页面:add.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>新增部门</title> </head> <body> <h1>新增部门</h1> <hr> <form action="list.html" method="post"> 部门编号<input type="text" name="deptno"><br> 部门名字<input type="text" name="dname"><br> 部门地址<input type="text" name="loc"><br> <input type="submit" value="保存"> </form> </body> </html>
-
修改页面:edit.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>修改部门</title> </head> <body> <h1>修改部门</h1> <hr > <form action="list.html" method="get"> 部门编号<input type="text" name="deptno" value="10" readonly /><br> 部门名称<input type="text" name="dname" value="销售部"/><br> 部门位置<input type="text" name="loc" value="北京"/><br> <!--以上的value应该设置为动态获取,除了编号不能做修改,设置为readonly只读--> <input type="submit" value="修改"/><br> </form> </body> </html>
-
详情页面:detail.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>详情页面</title> </head> <body> <h1>部门详情</h1> <hr > 部门编号:10 <br> 部门名称:销售部<br> 部门位置:北京<br> <!--以上的应该设置为动态获取--> <input type="button" value="返回" onclick="window.history.back()"/> </body> </html>
-
第三步:分析我们这个系统包括哪些功能
-
什么叫做一个功能呢?
-
只要 这个操作连接了数据库,就表示一个独立的功能。
-
-
包括哪些功能
-
查看部门列表
-
新增部门
-
删除部门
-
查看部门详细信息
-
跳转到修改页面
-
修改部门
-
第四步:在IDEA当中搭建开发环境
-
创建一个webapp(给这个webapp添加servlet-api.jar和jsp-api.jar到classpath当中。)
-
向webapp中添加连接数据库的jar包(mysql驱动)
-
必须在WEB-INF目录下新建lib目录,然后将mysql的驱动jar包拷贝到这个lib目录下。这个目录名必须叫做lib,全部小写的。(一定要注意位置,之前放错了位置,查了和测试半天才找出原因)。
mysql-connector-java-8.0.27.jar
-
-
JDBC的工具类
package com.dymolu.javaweb.oa.utils; import java.sql.*; import java.util.ResourceBundle; /** * JDBC的工具类 */ public class DBUtil { // 静态变量:在类加载时执行。并且是有顺序的。自上而下的顺序。 // 属性资源文件绑定 public static ResourceBundle bundle = ResourceBundle.getBundle("resources.jdbc"); // 根据属性配置文件key获取value private static String driver = bundle.getString("driver"); private static String url = bundle.getString("url"); private static String user = bundle.getString("user"); private static String password = bundle.getString("password"); static { // 注册驱动(注册驱动只需要注册一次,放在静态代码块当中。DBUtil类加载的时候执行。) try { //连接数据库的驱动,不能写死。因为以后可能还会连接 其他类型的数据库 ,读取配置文件动态获取。 Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获取数据库连接对象