栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

servlet与jsp综合-图书管理系统

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

servlet与jsp综合-图书管理系统

首先声明,我写的不是很好,是个新手,这是我提供的一些思路,勿喷,有问题欢迎指出。

步骤:
  1. 使用idea创建工程,创建com.xxxxx.dao
  2. 创建Book实体类。根据你的数据库创造的成员变量,包含方法和声明。(Auto incr建议点上,它是让id逐渐增大的)
    package com.lvshuai90104.dao;
    
    public class Book {
        private int id;
        private String bookName;
        private String bookAuthor;
        private String bookPublish;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getBookName() {
            return bookName;
        }
    
        public void setBookName(String bookName) {
            this.bookName = bookName;
        }
    
        public String getBookAuthor() {
            return bookAuthor;
        }
    
        public void setBookAuthor(String bookAuthor) {
            this.bookAuthor = bookAuthor;
        }
    
        public String getBookPublish() {
            return bookPublish;
        }
    
        public void setBookPublish(String bookPublish) {
            this.bookPublish = bookPublish;
        }
    
        public Book(int id, String bookName, String bookAuthor, String bookPublish) {
            this.id = id;
            this.bookName = bookName;
            this.bookAuthor = bookAuthor;
            this.bookPublish = bookPublish;
        }
    
        public Book(String bookName, String bookAuthor, String bookPublish) {
            this.bookName = bookName;
            this.bookAuthor = bookAuthor;
            this.bookPublish = bookPublish;
        }
    }
    

    3接口BookDaoimpl,这是你所有的方法,增删改查。

    package com.lvshuai90104.dao;
    
    import java.util.ArrayList;
    
    public interface BookDaoimpl {
        //得到所有的书的信息
        public abstract ArrayList getBookList();
        //添加一本书
        public abstract void addBook(Book book);
        //删除一本书
        public abstract void delBook(int id);
        //查找书
        public abstract Book getBookById(int id);
        //更改书
        public abstract void modifyBook(Book book);
    }
    

    4、ConnFactory链接数据库。

    package com.lvshuai90104.dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class ConnFactory {
        
        public static final String URL = "jdbc:mysql://localhost:3306/book?characterEncoding=UTF-8&eroDateTimeBehavior=convertToNull";
        public static final String  USER = "root";
        public static final String PASSWORD = "123456";
        public static Connection getConn(){
            Connection conn = null;
            try {
                //加载驱动链接
                Class.forName("com.mysql.jdbc.Driver");
                //建立链接
                conn = DriverManager.getConnection(URL, USER, PASSWORD);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }finally {
                return conn;
            }
        }
        //关闭链接
        public static void closeConn(Connection conn){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    

    5、BookDao,实现方法。

package com.lvshuai90104.dao;
import java.sql.*;
import java.util.ArrayList;
public class BookDao implements BookDaoimpl {
    @Override
    //获取所有的书籍
    public ArrayList getBookList() {
        //定义一个Book类型的数组booklist
        ArrayListbooklist = new ArrayList<>();
        //链接数据库
        Connection conn = ConnFactory.getConn();
        Statement stmt = null;
        ResultSet rs = null;
        try {
            //通过MySql的JDBC驱动访问数据库
            stmt = conn.createStatement();
            //rs储存查询结果
            rs = stmt.executeQuery("SELECt * FROM book");
            //将rs的值放入book里,再添加到booklist里,通过循环全部放在booklist里
           while (rs.next()){
              Book book = new Book(rs.getInt("id"),rs.getString("book_name"),rs.getString("book_author"),rs.getString("book_publish"));
              booklist.add(book);
           }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //返回booklist
        return booklist;
    }

    @Override
    public void addBook(Book book) {
        Connection conn = ConnFactory.getConn();
        //测试插入数据库
        PreparedStatement pstmt = null;
        try {
            String inset = "insert into book(book_name,book_author,book_publish) values (?,?,?)";
            pstmt = conn.prepareStatement(inset);
            //1,2,3分别对应后面三个?位置
            pstmt.setString(1,book.getBookName());
            pstmt.setString(2,book.getBookAuthor());
            pstmt.setString(3,book.getBookPublish());
            //这句不要丢
            pstmt.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        ConnFactory.closeConn(conn);
    }

    @Override
    public void delBook(int id) {
        Connection conn = ConnFactory.getConn();
        PreparedStatement pstmt = null;;
        try{
            String inset = "delete from book where id=?";
            pstmt = conn.prepareStatement(inset);
            pstmt.setInt(1,id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        ConnFactory.closeConn(conn);
    }

    @Override
    public Book getBookById(int id) {
        Connection conn = ConnFactory.getConn();
        Statement stmt = null;
        ResultSet rs = null;
        Book book = null;
        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery("SELECt * FROM where id="+id);
            while (rs.next()){
                book = new Book(rs.getInt("id"),rs.getString("book_name"),rs.getString("book_author"),rs.getString("book_publish"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        ConnFactory.closeConn(conn);
        return book;
    }

    @Override
    public void modifyBook(Book book) {
        Connection conn = ConnFactory.getConn();
        PreparedStatement pstmt = null;;
        try{
            String inset = "update book set book_name=?,book_author=?,book_publish=? where id = ?";
            pstmt = conn.prepareStatement(inset);
            pstmt.setString(1,book.getBookName());
            pstmt.setString(2,book.getBookAuthor());
            pstmt.setString(3,book.getBookPublish());
            pstmt.setInt(4,book.getId());
            pstmt.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        ConnFactory.closeConn(conn);
    }
}

6、为了防止汉字出现乱码设置过滤器CharsetFilter

package com.lvshuai90104.dao;

import javax.servlet.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebFilter(filterName = "CharsetFilter",urlPatterns = "/*")
public class CharsetFilter implements Filter {
    public void init(FilterConfig config) throws ServletException {
    }

    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html; charset=UTF-8");
        chain.doFilter(request, response);
    }
}

7、BookServlet1,创建servlet,用来把数据发送给servlet

package Servlet;

import com.lvshuai90104.dao.Book;
import com.lvshuai90104.dao.BookDao;

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.util.ArrayList;

@WebServlet(name = "BookServlet1",urlPatterns = "/BookServlet1")
public class BookServlet1 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        BookDao dao = new BookDao();
        ArrayList books = dao.getBookList();
        //将books的值并赋予books
        request.getSession().setAttribute("books",books);
        //将值发送给index.jsp
        response.sendRedirect("index.jsp");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

8、index.jsp,用来在网页显示数据。

<%@ page import="java.util.ArrayList" %>
<%@ page import="com.lvshuai90104.dao.Book" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--c标签,需要导入jstl.jar和standard.jar--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

  
    $Title$
  
  
  
<%--通过session获取books(bookservlet1)--%>
    
      
idnameauthorpublish
${books.id} ${books.bookName} ${books.bookAuthor} ${books.bookPublish}
添加图书

配置jar包

 9、AddBook添加书的jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


name:
author:
publish:

10、AddBook,创建servlet,实现添加书servlet

package Servlet;

import com.lvshuai90104.dao.Book;
import com.lvshuai90104.dao.BookDao;

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;

@WebServlet(name = "AddBook",urlPatterns = "/AddBook.do")
public class AddBook extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取addbook的值。
        String bookName = request.getParameter("bookName");
        String bookAuthor = request.getParameter("bookAuthor");
        String bookPublish = request.getParameter("bookPublish");
        BookDao dao = new BookDao();
        //将获取的值放在book中
        Book book = new Book(bookName,bookAuthor,bookPublish);
        //将book通过dao方法插入数据库中
        dao.addBook(book);
        //将值传给BookServlet1中,并跳转到BookServlet1
        response.sendRedirect("BookServlet1");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          this.doPost(request,response);
    }
}

结构图

 还有几个功能没实现,有时间我会继续修改,希望对大家有用。

可以加我qq要源码1469131641

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872697.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号