- _nosay
JDBC实践-删除功能的实现
2017-12-06 19:57:09
1. 建立DelUserServlet.java文件,内容如下
package com.ungly.servlet;
import com.ungly.service.DelUserService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "DelUserServlet",urlPatterns = "/delUser")
public class DelUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8"); //设置编码
String id = request.getParameter("id"); //接收id参数
ListService listService = new ListService();
boolean status = listService.delUser(id);
if(status)
{
response.sendRedirect("/List");
}else{
response.setContentType("text/html;charset=utf-8;");
PrintWriter writer = response.getWriter();
writer.write("删除失败");
}
}
}
2. 重写UserDao,并在UserDao中加入删除的相关方法
package com.ungly.dao;
import com.ungly.bean.User;
import com.ungly.db.DBAccess;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
* 和user表相关的数据库操作
*/
public class UserDao {
private Connection conn = null;
private PreparedStatement preparedStatement = null;
private boolean status = false;
public UserDao() {
DBAccess dbAccess = new DBAccess();
try {
conn = dbAccess.getSqlCon();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 根据查询条件查询消息列表
*/
public List<User> queryUserList(String username)
{
List<User> userList = new ArrayList<>();
try {
StringBuilder sql = new StringBuilder("select id,username from user where 1=1");
List<String> paramList = new ArrayList<>();
if(username != null && !"".equals(username.trim()))
{
sql.append(" and username=?");
paramList.add(username);
}
this.preparedStatement = conn.prepareStatement(sql.toString());
for (int i = 0; i < paramList.size(); i++) {
this.preparedStatement.setString(i+1,paramList.get(i));
}
ResultSet resultSet = this.preparedStatement.executeQuery();
while (resultSet.next())
{
User user = new User();
userList.add(user);
user.setId(resultSet.getString("id"));
user.setUsername(resultSet.getString("username"));
}
}catch (SQLException e) {
e.printStackTrace();
}finally {
try {
this.conn.close();
this.preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return userList;
}
public boolean delUser(Integer id)
{
if(id>0)
{
try {
DBAccess dbAccess = new DBAccess();
String sql = "DELETE FROM user where id=?";
this.preparedStatement = this.conn.prepareStatement(sql);
this.preparedStatement.setInt(1,id);
int i = this.preparedStatement.executeUpdate();
if(i>0)
{
this.status = true;
}else{
this.status = false;
}
}catch (SQLException e) {
e.printStackTrace();
}finally {
try {
this.conn.close();
this.preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}else{
this.status = false;
}
return this.status;
}
}
3. 在ListService.java文件中添加delUser方法,内容如下
public boolean delUser(String id)
{
boolean status = false;
UserDao userDao = new UserDao();
try {
status = userDao.delUser(Integer.valueOf(id));
}catch (Exception e)
{
status = false;
}
return status;
}
4.最后修改list.jsp文件,内容如下
<%--
Created by IntelliJ IDEA.
User: nosay
Date: 17-12-5
Time: 下午3:31
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<form role="form" method="get" action="">
<div class="form-group">
<label for="username">用户名</label><input class="form-control" name="username" value="${requestScope.username}" id="username" type="username" />
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
<table class="table">
<thead>
<tr>
<th>编号</th>
<th>用户名</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${userList}" var="user" varStatus="status">
<tr>
<td>${status.index +1}</td>
<td>${user.username}</td>
<td>编辑 | <a href="/delUser?id=${user.id}">删除</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>