做的一个小Demo,对单表的增删查改,效果图如下:
数据库表结构
create table booktype
(
tid int auto_increment
primary key,
name varchar(20) not null
)
项目结构
Bean
package bean;
import java.io.Serializable;
/** * booktype * * @author Leo 2019-07-08 */
public class BookType implements Serializable {
private static final long serialVersionUID = 1L;
/** * name */
private String name;
public BookType() {
}
public BookType(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "BookType{" +
"name='" + name + '\'' +
'}';
}
}
DAO
package dao;
import bean.BookType;
import util.DBUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/** * @ClassName: BookTypeDao * @Author: Leo * @Description: * @Date: 7/8/2019 10:36 AM */
public class BookTypeDao {
private static Connection connection = null;
static {
connection = DBUtil.getConnection();
}
/** * 保存 * * @param bookType */
public void save(BookType bookType) {
String sql = "insert into booktype values(null,?)";
try {
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, bookType.getName());
statement.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
/** * 查询所有 * * @return */
public List<BookType> selectAll() {
List<BookType> list = new ArrayList<>();
String sql = "select * from booktype order by tid";
try {
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
list.add(new BookType(resultSet.getString("name")));
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
/** * 根据名字模糊查询 * * @return */
public List<BookType> selectByName(String keyword) {
List<BookType> list = new ArrayList<>();
String sql = "select * from booktype where name like ?";
try {
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, keyword + "%");
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
list.add(new BookType(resultSet.getString("name")));
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
/** * 通过id查询记录 * * @param id * @return */
public BookType selectById(int id) {
BookType bookType = null;
String sql = "select * from booktype where tid = ?";
try {
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, id);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
bookType = new BookType(resultSet.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return bookType;
}
/** * 更新记录 * * @param name * @return */
public int update(String name, int id) {
String sql = "update booktype set name = ? where tid = ?";
int result = 0;
try {
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, name);
statement.setInt(2, id);
result = statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
/** * 通过id删除记录 * * @param id * @return */
public int deleteById(int id) {
String sql = "delete from booktype where tid = ?";
int result = 0;
try {
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, id);
result = statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
}
Servlet
AddServlet
package servlet;
import bean.BookType;
import dao.BookTypeDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/** * @ClassName: ${NAME} * @Author: Leo * @Description: * @Date: 7/8/2019 1:51 PM */
public class AddServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
String name = (String) request.getParameter("booktypename");
BookTypeDao dao = new BookTypeDao();
dao.save(new BookType(name));
response.sendRedirect("index.jsp");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
DeleteServlet
package servlet;
import dao.BookTypeDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** * @ClassName: ${NAME} * @Author: Leo * @Description: * @Date: 7/8/2019 1:54 PM */
public class DeleteServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
request.getParameter("id");
BookTypeDao dao = new BookTypeDao();
dao.deleteById(Integer.parseInt(request.getParameter("id")));
response.sendRedirect("index.jsp");
}
}
EditServlet
package servlet;
import dao.BookTypeDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** * @ClassName: ${NAME} * @Author: Leo * @Description: * @Date: 7/8/2019 2:07 PM */
public class EditServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
int id = Integer.parseInt(request.getParameter("booktypeid"));
String name = request.getParameter("booktypename");
BookTypeDao dao = new BookTypeDao();
dao.update(name, id);
response.sendRedirect("index.jsp");
}
}
QueryServlet
package servlet;
import bean.BookType;
import dao.BookTypeDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/** * @ClassName: ${NAME} * @Author: Leo * @Description: * @Date: 7/8/2019 3:03 PM */
public class QueryServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
String keyword = request.getParameter("keyword");
BookTypeDao dao = new BookTypeDao();
List<BookType> list = dao.selectByName(keyword);
request.setAttribute("queryResult", list);
request.getRequestDispatcher("query.jsp").forward(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
Util
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/** * @ClassName: DBUtil * @Author: Leo * @Description: * @Date: 7/8/2019 10:30 AM */
public class DBUtil {
private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
private static final String URL = "jdbc:mysql://127.0.0.1:3306/books";
private static final String USER = "root";
private static final String PASSWORD = "root";
private static Connection connection;
public static Connection getConnection() {
try {
Class.forName(DRIVER);
if (connection == null) {
connection = DriverManager.getConnection(URL, USER, PASSWORD);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return connection;
}
}
Web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--增加Servlet-->
<servlet>
<servlet-name>AddServlet</servlet-name>
<servlet-class>servlet.AddServlet</servlet-class>
</servlet>
<!--删除Servlet-->
<servlet>
<servlet-name>DeleteServlet</servlet-name>
<servlet-class>servlet.DeleteServlet</servlet-class>
</servlet>
<!--编辑Servlet-->
<servlet>
<servlet-name>EditServlet</servlet-name>
<servlet-class>servlet.EditServlet</servlet-class>
</servlet>
<!--查询Servlet-->
<servlet>
<servlet-name>QueryServlet</servlet-name>
<servlet-class>servlet.QueryServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddServlet</servlet-name>
<url-pattern>/AddServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DeleteServlet</servlet-name>
<url-pattern>/DeleteServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>EditServlet</servlet-name>
<url-pattern>/EditServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>QueryServlet</servlet-name>
<url-pattern>/QueryServlet</url-pattern>
</servlet-mapping>
</web-app>
JSP
add.jsp
<%--
Created by IntelliJ IDEA.
User: 24234
Date: 7/8/2019
Time: 2:27 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加</title>
</head>
<body>
<form action="AddServlet" method="post">
<input type="text" name="booktypename">
<input type="submit" value="添加">
</form>
</body>
</html>
edit.jsp
<%@ page import="dao.BookTypeDao" %>
<%@ page import="bean.BookType" %><%--
Created by IntelliJ IDEA.
User: 24234
Date: 7/8/2019
Time: 3:19 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>编辑</title>
</head>
<body>
<%
BookTypeDao dao = new BookTypeDao();
BookType bookType = dao.selectById(Integer.parseInt(request.getParameter("id")));
int id = Integer.parseInt(request.getParameter("id"));
String name = bookType.getName();
%>
<form action="EditServlet" method="post">
<input type="text" name="booktypeid" value="<%=id%>">
<input type="text" name="booktypename" value="<%=name%>">
<input type="submit" value="修改">
</form>
</body>
</html>
index.jsp
<%@ page import="dao.BookTypeDao" %>
<%@ page import="java.util.List" %>
<%@ page import="bean.BookType" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<table border="2">
<tr>
<a href="add.jsp">添加</a>
<form action="QueryServlet" method="post">
<label>
<input type="text" name="keyword">
</label>
<input type="submit" name="query" value="查询">
</form>
</tr>
<%
BookTypeDao dao = new BookTypeDao();
List<BookType> list = dao.selectAll();
for (int i = 0; i < list.size(); i++) {
%>
<tr>
<td>
<%=i + 1%>
</td>
<td>
<%=list.get(i).getName()%>
</td>
<td>
<a href="edit.jsp?id=<%=i+1%>">编辑</a>
</td>
<td>
<a href="DeleteServlet?id=<%=i+1%>">删除</a>
</td>
</tr>
<%}%>
</table>
</body>
</html>
query.jsp
<%@ page import="bean.BookType" %>
<%@ page import="java.util.List" %><%--
Created by IntelliJ IDEA.
User: 24234
Date: 7/8/2019
Time: 3:13 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>查询结果</title>
</head>
<body>
<%List<BookType> list = (List<BookType>) request.getAttribute("queryResult");%>
<table border="2">
<%
for (int i = 0; i < list.size(); i++) {
%>
<tr>
<td>
<%=i + 1%>
</td>
<td>
<%=list.get(i).getName()%>
</td>
<td>
<a href="EditServlet?id=<%=i+1%>">编辑</a>
</td>
<td>
<a href="DeleteServlet?id=<%=i+1%>">删除</a>
</td>
</tr>
<%}%>
<td><a href="index.jsp">返回主页面</a></td>
</table>
</body>
</html>