JavaWeb——(14)数据库应用:图书管理系统

目录

一、准备工作

二、书籍显示功能

三、书籍添加功能

四、书籍修改功能

4.1数据的回显

4.2数据的修改

五、书籍删除功能

六、全选与反选功能

七、批量删除

7.1响应函数删除

7.2提交表单删除

八、多条件查询

九、分页功能

 十、显示书籍详细信息


我们以图书管理系统为例子,利用DBUtils进行完整的连接数据库开发。

一、准备工作

 假设现在有个图书管理系统,可以在上面任意添加图书,包括图书的名字,价格等信息,也可以显示、修改与删除图书的信息,并将这些都在网页上显示出来。

主要涉及到四个功能

  1. 书籍的显示功能
  2. 书籍的添加功能
  3. 书籍的修改功能
  4. 书籍的删除功能

首先我们把做好的界面文件(提取码:u11q)导入进来,放至WEB文件夹下,

 然后在WEB-INF目录下的lib路径放置我们需要的jar包(提取码:fu23),将之前写过的C3P0Util.java文件放在Util包下,同时写好配置文件c3p0-config.xml(可参考博客地址),

我们还要建立好相关的数据库与数据表,并且修改好配置文件c3p0-config.xml。

二、书籍显示功能

现在我们需要完成点击商品管理中的商品查看可以看到数据库中的书籍的信息,示意图如下:

 首先我们实现数据访问层的代码,从数据库拿取所有的书籍(在这之前要实现实体类Book,并且根据数据表中的列名新建Book的属性,完成get和set方法)

package Dao;

import Util.Book;
import Util.C3P0Util;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.SQLException;
import java.util.List;

public class BookDaoImpl {
    /**
     * 查找所有的图书
     * @return
     * @throws SQLException
     */
    public List<Book> findAllBooks() throws SQLException {
        QueryRunner queryRunner=new QueryRunner(C3P0Util.getDataSource());
        List<Book> bookList = queryRunner.query("select * from book", new BeanListHandler<Book>(Book.class));
        return bookList;
    }
}

然后是业务逻辑层,完成主要的业务逻辑,因为这里仅仅是获取数据显示出来,所有直接调用findAllBooks方法即可,

package Service;

import Dao.BookDaoImpl;
import Util.Book;

import java.sql.SQLException;
import java.util.List;

public class BookServiceImpl {
    BookDaoImpl bookDao=new BookDaoImpl();

    public List<Book> findAllBooks(){
        try {
            return bookDao.findAllBooks();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

然后是通过servlet来获取数据并且通过request对象将数据分发转向到显示界面list.jsp,

package Web;

import Service.BookServiceImpl;
import Util.Book;

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.List;

@WebServlet(name = "BookListServlet")
public class BookListServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //调用业务逻辑
        BookServiceImpl bookService=new BookServiceImpl();
        List<Book> bookList = bookService.findAllBooks();//获取所有书籍

        //跳转页面
        if (bookList!=null){
            request.setAttribute("books",bookList);//把所有书籍放入到request对象中
            request.getRequestDispatcher("/admin/products/list.jsp").forward(request,response);//跳转到list.jsp中
        }
    }
}

配置好web.xml的servlet路径:

<welcome-file-list><welcome-file>admin/login/home.jsp</welcome-file></welcome-file-list>

<servlet>
    <servlet-name>bookListServlet</servlet-name>
    <servlet-class>Web.BookListServlet</servlet-class>
</servlet>
<servlet>
    <servlet-name>addBookServlet</servlet-name>
    <servlet-class>Web.AddBookServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>bookListServlet</servlet-name>
    <url-pattern>/servlet/bookListServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>addBookServlet</servlet-name>
    <url-pattern>/servlet/addBookServlet</url-pattern>
</servlet-mapping>

最后修改admin/login/left.jsp中点击商品查看时跳转的路径名称即可,这里的路径要和web.xml中的servlet配置路径相同,

 然后就可以运行得到本节开始的效果图了。

三、书籍添加功能

书籍列表里面可以点击添加,点击添加之后会弹出添加商品的具体信息,

 这里我们先实现数据访问层的添加书籍方法,在数据库根据书本信息中插入数据,

/**
 * 添加书籍信息
 * @param book
 * @throws SQLException
 */
public void addBook(Book book) throws SQLException {
    QueryRunner queryRunner=new QueryRunner(C3P0Util.getDataSource());
    queryRunner.update("insert into book values(?,?,?,?,?,?)",book.getId(),book.getName(),book.getPrice(),book.getPnum(),book.getCategory(),book.getDescription());
}

然后是业务逻辑层,直接调用方法:

//添加图书
public void addBook(Book book){
    try {
        bookDao.addBook(book);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

然后我们通过servlet将添加页面中的信息封装到Book对象中,并且调用业务层方法将书本添加到数据库中,然后跳转显示的servlet,

package Web;

import Service.BookServiceImpl;
import Util.Book;
import org.apache.commons.beanutils.BeanUtils;

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.lang.reflect.InvocationTargetException;
import java.util.UUID;

@WebServlet(name = "AddBookServlet")
public class AddBookServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");//设置编码格式
        //获取数据
        Book book=new Book();
        try {
            BeanUtils.populate(book,request.getParameterMap());//从request对象中获取到书籍信息,并封装到book对象中
            book.setId(UUID.randomUUID().toString());//给书籍设置随机ID
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }

        //调用业务逻辑
        BookServiceImpl bookService=new BookServiceImpl();
        bookService.addBook(book);

        request.getRequestDispatcher("/servlet/bookListServlet").forward(request,response);//转发到显示的servlet
    }
}

然后在web.xml中配置一下添加书籍servlet的映射地址,

<servlet>
    <servlet-name>addBookServlet</servlet-name>
    &
本系统主要实现对图书馆图书借阅信息的管理,主要管理读者信息、图书信息、借阅与归还信息、系统用户的信息。 (1)读者信息管理:能够对读者的基本信息进行管理,包括新增读者,如学校新来一名教师,想要借书,就必须先添加读者信息;读者信息的修改,如学生转到别的专业,此时要修改学生的基本信息;删除读者的信息,比如某个学生中途退学了,可以将其信息删除。查询读者的信息,比如有同学拾到了一张借阅卡,卡上有学生的编号,通过此号来查询学生的联系电话,从而可以找到学生。 (2)图书信息管理:能够对图书的基本信息进行管理,包括新增图书,学校每年会购进新书,此时需要将新书的信息录入系统中;图书信息的修改,如学生借书后将图书丢失,此时需要修改图书的总数量,使总数减1;删除图书,学校在购进新书的同时,每年会对过期的图书进行清理,不再提供借阅,此时就需要将这些图书的信息从系统中删除。查询图书的信息,比如要查看有哪些是Java相关的书籍或者指定ISBN号的图书等。 (3)图书借阅信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、借阅时间等信息。 (4)图书归还信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、归还时间、是否超期、罚金等信息。 (5)系统用户信息管理:能够对系统用户的信息进行管理,包括增加新的系统操作用户,对当前系统用户的密码进行修改,以及删除某一用户。 --------------------- 作者:forever_kirito 来源:CSDN 原文:https://blog.csdn.net/forever_kirito/article/details/79111987 版权声明:本文为博主原创文章,转载请附上博文链接!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值