图书管理系统,可以在浏览器中对书籍信息进行,显示、添加、删除、修改
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