一、前期分析
(1)需求:用户信息的增删改查操作
(2)设计:
* 技术选型:Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat
* 数据库设计:
create database day17; -- 创建数据库
use day17; -- 使用数据库
create table user( -- 创建表
id int primary key auto_increment,
name varchar(20) not null,
gender varchar(5),
age int,
address varchar(32),
qq varchar(20),
email varchar(50)
);
(3)开发:
* 环境搭建
* 创建数据库环境
* 创建项目,导入需要的jar包
* 编码
(4)测试
(5)部署运维
二、具体实现
- 编写 index.jsp:实现跳转 UserListServlet.java,进行查询的工作
<a
href="${pageContext.request.contextPath}/userListServlet"
style="text-decoration:none;font-size:33px">查询所有用户信息
</a>
这里动态设置虚拟目录
2. 编写 UserListServlet.java:调用 UserService 完成查询
@WebServlet("/userListServlet")
public class UserListServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.调用UserService完成查询
UserService service = new UserServiceImpl();
List<User> users = service.findAll();
//2.将list存入request域
request.setAttribute("users",users);
//3.转发到list.jsp
request.getRequestDispatcher("/list.jsp").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
- 编写 UserServlet.java 接口,然后编写实例化该接口的 UserServletImpl.java
处理具体的业务逻辑
public class UserServiceImpl implements UserService {
private UserDao dao = new UserDaoImpl();
@Override
public List<User> findAll() {
// 调用 Dao 完成查询
return dao.findAll();
}
}
- 编写 UserDao,然后编写实例化该接口的 UserDaoImpl.java,完成对数据库的具体查询操作
public class UserDaoImpl implements UserDao {
// 创建 JDBCTemplate 对象
private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public List<User> findAll() {
// 使用 JDBC 操作数据库
// 1.定义 sql
String sql = "select * from user";
List<User> users = template.query(sql,new BeanPropertyRowMapper<User>(User.class));
return users;
}
}
- ok,数据查询完之后,通过转发给 list.jsp 进行页面显示
<body>
<div class="container">
<h3 style="text-align: center">用户信息列表</h3>
<table border="1" class="table table-bordered table-hover">
<tr class="success">
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>籍贯</th>
<th>QQ</th>
<th>邮箱</th>
<th>操作</th>
</tr>
<c:forEach items="${users}" var="user" varStatus="s">
<tr>
<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.gender}</td>
<td>${user.age}</td>
<td>${user.address}</td>
<td>${user.qq}</td>
<td>${user.email}</td>
<td><a class="btn btn-default btn-sm" href="update.html">修改</a>
<a class="btn btn-default btn-sm" href="">删除</a></td>
</tr>
</c:forEach>
<tr>
<td colspan="8" align="center"><a class="btn btn-primary" href="add.html">添加联系人</a></td>
</tr>
</table>
</div>
</body>
</html>