图书管理系统,可以在浏览器中对书籍信息进行,显示、添加、删除、修改
JSP + Servlet + JDBC + MySQL,SVN版本管理
最终效果图

MySQL数据库

项目

dao层
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import entity.Book;
import servlet.DeleteServlet;
import tool.JDBCUtilsConfig;
public class BookDao {
private Connection con = JDBCUtilsConfig.getConnection();
public void update(int id, String name) {
try {
String sql = "UPDATE booklist SET book_name=? WHERE book_id=?";
PreparedStatement pst = con.prepareStatement(sql);
pst.setObject(1, name);
pst.setObject(2, id);
pst.executeUpdate();
} catch (SQLException ex) {
System.out.println(ex);
throw new RuntimeException("修改失败");
}
}
public void add(int id,String name) {
try {
String sql = "INSERT INTO booklist (book_id,book_name) VALUES(?,?)";
PreparedStatement pst = con.prepareStatement(sql);
pst.setObject(1, id);
pst.setObject(2, name);
pst.executeUpdate();
} catch (SQLException ex) {
System.out.println(ex);
throw new RuntimeException("添加失败");
}
}
public void delete(int id){
try {
String sql = "delete from booklist where book_id = ?";
PreparedStatement pst = con.prepareStatement(sql);
pst.setObject(1, id);
pst.executeUpdate();
} catch (SQLException ex) {
System.out.println(ex);
throw new RuntimeException("删除失败");
}
}
public List<Book> selectAll() {
try{
PreparedStatement pst = con.prepareStatement("SELECT * FROM booklist");
ResultSet rs = pst.executeQuery();
List<Book> list = new ArrayList<Book>();
while(rs.next()){
Book book = new Book(rs.getInt("book_id"),rs.getString("book_name"));
list.add(book);
}
return list;
}catch(SQLException ex){
System.out.println(ex);
throw new RuntimeException("查询所有失败");
}
}
}
连接数据库的工具类
package tool;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class JDBCUtilsConfig {
private static Connection con ;
private static String driverClass;
private static String url;
private static String username;
private static String password;
static{
try{
readConfig();
Class.forName(driverClass);
con = DriverManager.getConnection(url, username, password);
}catch(Exception ex){
throw new RuntimeException("数据库连接失败");
}
}
private static void readConfig()throws Exception{
InputStream in = JDBCUtilsConfig.class.getClassLoader().getResourceAsStream("database.properties");
Properties pro = new Properties();
pro.load(in);
driverClass=pro.getProperty("driverClass");
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("password");
}
public static Connection getConnection(){
return con;
}
}
database.properties 配置中的数据库信息
driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/bookrack username=root password=root
entity
package entity;
public class Book {
private int book_id;
private String book_name;
public Book() {
super();
}
public Book(int book_id) {
super();
this.book_id = book_id;
}
public Book(int book_id, String book_name) {
super();
this.book_id = book_id;
this.book_name = book_name;
}
public int getBook_id() {
return book_id;
}
public void setBook_id(int book_id) {
this.book_id = book_id;
}
public String getBook_name() {
return book_name;
}
public void setBook_name(String book_name) {
this.book_name = book_name;
}
@Override
public String toString() {
return "Book [book_id=" + book_id + ", book_name=" + book_name + "]";
}
}
Servlet层 查询功能
package servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.BookDao;
import entity.Book;
public class BookServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
BookDao bookdao = new BookDao();
List<Book> list = bookdao.selectAll();
request.setAttribute("list", list);
request.getRequestDispatcher("book.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>图书管理系统界面</title>
</head>
<body>
<form name="myForm" action="/book2/AddServlet" method="post">
book_id: <input type="text" name="book_id">
book_name: <input type="text" name="book_name">
<input type="submit" value="添加">
</form>
<table width="100%" border=1>
<tr>
<td>序号</td>
<td>书名</td>
<td><a >操作</a></td>
</tr>
<tr>
<c:forEach items="${list }" var="list">
<tr>
<td>${list.book_id }</td>
<td>${list.book_name }</td> <br>
<td>
<a href="${pageContext.request.contextPath }/update.jsp">修改</a>
<a href="${pageContext.request.contextPath }/DeleteServlet? id=${list.book_id}">删除</a>
</td>
</tr>
</c:forEach>
</tr>
</table>
</body>
</html>
添加功能
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.BookDao;
public class AddServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String bookid = request.getParameter("book_id");
int id = Integer.parseInt(bookid);
String name = request.getParameter("book_name");
BookDao bookdao = new BookDao();
bookdao.add(id,name);
response.sendRedirect("BookServlet");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
删除功能
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.BookDao;
public class DeleteServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String staffdepartment = request.getParameter("id");
int i=Integer.parseInt(staffdepartment);
BookDao bookdao = new BookDao();
bookdao.delete(i);
response.sendRedirect("BookServlet");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
修改功能
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.BookDao;
public class DeleteServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String staffdepartment = request.getParameter("id");
int i=Integer.parseInt(staffdepartment);
BookDao bookdao = new BookDao();
bookdao.delete(i);
response.sendRedirect("BookServlet");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
修改时,提交数据的页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>修改页面</title>
</head>
<body>
<form name="myForm" action="/book2/UpdateServlet" method="post">
book_id: <input type="text" name="book_id">
book_name: <input type="text" name="book_name">
<input type="submit" value="提交">
</form>
</body>
</html>
原文:https://www.cnblogs.com/H742/p/14166232.html