相比于之前(JavaWeb实现表单注册登录)新增了显示全部用户,修改,删除
查询
Dao层
/**
* 查询所有用户数据
*
*/
public List<User> showAllUser(){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String sql = null;
List<User> users = new ArrayList();
try {
conn = DBUtils.getConnection();
sql = "select id,username,password,gender,hobby,address,remark from user";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()){
User user = new User();
user.setId(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
user.setGender(rs.getString(4));
user.setHobby(rs.getString(5));
user.setAddress(rs.getString(6));
user.setRemark(rs.getString(7));
users.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
//关闭连接
DBUtils.closeDB(conn,ps,rs);
return users;
}
Service层
/**
* 显示用户
*/
public List showUser(){
UserDao userDao = new UserDao();
List<User> users = userDao.showAllUser();
return users;
}
Controller层
//显示用户数据
if ("showalluser".equals(userAction)){
UserService userService = new UserService();
List users = userService.showUser();
if (users.isEmpty()){
req.setAttribute("infor","未找到相关数据");
req.getRequestDispatcher("/showalluser.jsp").forward(req,resp);
}else {
req.setAttribute("users",users);
req.getRequestDispatcher("/showalluser.jsp").forward(req,resp);
}
}
网页部分(使用表格调整格式)
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.org.domain.User" %><%--
Created by IntelliJ IDEA.
User: Asus
Date: 2023/9/27
Time: 10:48
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<style>
td{
text-align: center;
}
</style>
<body>
<%=request.getAttribute("infor")==null?"":request.getAttribute("infor")%>
<table border="1" cellpadding="0" cellspacing="0" align="center" width="80%">
<tr>
<th>ID</th>
<th>用户名</th>
<th>密码</th>
<th>性别</th>
<th>爱好</th>
<th>地址</th>
<th>备注</th>
<th>操作</th>
</tr>
<%
List<User> users = (List<User>) request.getAttribute("users");
for (User user : users) {
%>
<tr>
<td><%=user.getId()%></td>
<td><%=user.getUsername()%></td>
<td><%=user.getPassword()%></td>
<td><%=user.getGender()%></td>
<td><%=user.getHobby()%></td>
<td><%=user.getAddress()%></td>
<td><%=user.getRemark()%></td>
<td>
<a href="UserController?userAction=showuserback&id=<%=user.getId()%>">修改</a>
<a href="UserController?userAction=deleteuser&id=<%=user.getId()%>">删除</a>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>
登录成功后点击查看所有用户信息
修改
业务逻辑:要拿到需要修改用户的ID,根据ID查询到该用户的所有信息显示到网页上,用户选择需要修改的数据进行修改,修改后提交保存到数据库
Dao层
修改用户
/**
* 修改用户数据
*/
public int updateUser(User user){
Connection conn = null;
PreparedStatement ps = null;
String sql = null;
int i = 0;
try {
conn = DBUtils.getConnection();
sql = "update user set username=?,password=?,gender=?,hobby=?,address=?,remark=? where id=?";
ps = conn.prepareStatement(sql);
ps.setString(1,user.getUsername());
ps.setString(2,user.getPassword());
ps.setString(3,user.getGender());
ps.setString(4,user.getHobby());
ps.setString(5,user.getAddress());
ps.setString(6,user.getRemark());
ps.setInt(7,user.getId());
i = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
DBUtils.closeDB(conn,ps,null);
return i;
}
通过ID查询用户
/**
* 通过ID查询用户
*/
public User findUserById(Integer id){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String sql = null;
User user = null;
try {
conn = DBUtils.getConnection();
sql = "select id,username,password,gender,hobby,address,remark from user where id=?";
ps = conn.prepareStatement(sql);
ps.setInt(1,id);
rs = ps.executeQuery();
while (rs.next()){
user = new User();
user.setId(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
user.setGender(rs.getString(4));
user.setHobby(rs.getString(5));
user.setAddress(rs.getString(6));
user.setRemark(rs.getString(7));
}
} catch (SQLException e) {
e.printStackTrace();
}
DBUtils.closeDB(conn,ps,rs);
return user;
}
Service层
/**
* 回显数据(通过ID查询将数据返回给页面)
*/
public User showUserBack(Integer id){
User user = new UserDao().findUserById(id);
return user;
}
/**
* 修改用户
*/
public boolean modifyUser(User user){
int i = new UserDao().updateUser(user);
if (i>0){
return true;
}else {
return false;
}
}
Controller层
//回显数据
if ("showuserback".equals(userAction)){
//获取网页传回的数据
String id = req.getParameter("id");
UserService userService = new UserService();
User user = userService.showUserBack(Integer.parseInt(id));
req.setAttribute("user",user);
req.getRequestDispatcher("/showuserback.jsp").forward(req,resp);
}
//修改用户数据
if ("modifyuser".equals(userAction)){
User user = new User();
try {
BeanUtils.populate(user,req.getParameterMap());
boolean flag = new UserService().modifyUser(user);
if (flag){
UserService userService = new UserService();
List<User> users = userService.showUser();
if (users.isEmpty()){
req.setAttribute("infor","未找到相关数据");
req.getRequestDispatcher("/showalluser.jsp").forward(req,resp);
}else {
req.setAttribute("users",users);
req.getRequestDispatcher("/showalluser.jsp").forward(req,resp);
}
}else {
resp.getWriter().print("修改失败!");
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
网页部分(新建一个jsp页面用于回显数据和修改数据)
<%@ page import="com.org.domain.User" %><%--
Created by IntelliJ IDEA.
User: Asus
Date: 2023/10/7
Time: 11:47
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
User user = (User) request.getAttribute("user");
%>
<div>
<div style="width:100%; text-align: center"></div>
<form action="UserController" method="post">
<%----%>
<input type="hidden" value="modifyuser" name="userAction">
<table border="1" cellpadding="0" cellspacing="0" width="50%" height="500px" align="center">
<tr>
<td colspan="2" align="center">修改用户信息</td>
</tr>
<tr>
<td>ID:</td>
<td><input type="text" value="<%=user.getId()%>" name="id"></td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" value="<%=user.getUsername()%>" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" value="<%=user.getPassword()%>" name="password"></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="text" name="gender" value="<%=user.getGender()%>">
</td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="text" name="hobby" value="<%=user.getHobby()%>">
</td>
</tr>
<tr>
<td>地址:</td>
<td>
<input type="text" name="address" value="<%=user.getAddress()%>">
</td>
</tr>
<tr>
<td>备注:</td>
<td>
<input type="text" name="remark" value="<%=user.getRemark()%>">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="修改">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
查看所有用户后点击修改进入回显数据的页面
点击提交后成功更改
删除
Dao层
/**
* 通过id删除用户
*/
public int deleteUserBy(Integer id){
Connection conn = null;
PreparedStatement ps = null;
String sql = null;
int i = 0;
try {
conn = DBUtils.getConnection();
sql = "delete from user where id=?";
ps = conn.prepareStatement(sql);
ps.setInt(1,id);
i = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
DBUtils.closeDB(conn,ps,null);
return i;
}
Service层
/**
* 删除用户
*/
public boolean deleteUser(Integer id){
int i = new UserDao().deleteUserBy(id);
if (i>0){
return true;
}else {
return false;
}
}
Controller层
//删除用户
if ("deleteuser".equals(userAction)){
//获取网页传回的数据
String id = req.getParameter("id");
boolean flag = new UserService().deleteUser(Integer.parseInt(id));
if (flag){
UserService userService = new UserService();
List<User> users = userService.showUser();
if (users.isEmpty()){
req.setAttribute("infor","未找到相关数据");
req.getRequestDispatcher("/showalluser.jsp").forward(req,resp);
}else {
req.setAttribute("users",users);
req.getRequestDispatcher("/showalluser.jsp").forward(req,resp);
}
}else {
resp.getWriter().print("删除失败!");
}
}
网页部分
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.org.domain.User" %><%--
Created by IntelliJ IDEA.
User: Asus
Date: 2023/9/27
Time: 10:48
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<style>
td{
text-align: center;
}
</style>
<body>
<%=request.getAttribute("infor")==null?"":request.getAttribute("infor")%>
<table border="1" cellpadding="0" cellspacing="0" align="center" width="80%">
<tr>
<th>ID</th>
<th>用户名</th>
<th>密码</th>
<th>性别</th>
<th>爱好</th>
<th>地址</th>
<th>备注</th>
<th>操作</th>
</tr>
<%
List<User> users = (List<User>) request.getAttribute("users");
for (User user : users) {
%>
<tr>
<td><%=user.getId()%></td>
<td><%=user.getUsername()%></td>
<td><%=user.getPassword()%></td>
<td><%=user.getGender()%></td>
<td><%=user.getHobby()%></td>
<td><%=user.getAddress()%></td>
<td><%=user.getRemark()%></td>
<td>
<a href="UserController?userAction=showuserback&id=<%=user.getId()%>">修改</a>
<a href="UserController?userAction=deleteuser&id=<%=user.getId()%>">删除</a>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>
查看所有用户后选择想要删除的数据后点击