【JavaWeb】JavaWeb项目,书城管理系统的实现

前言

我在大二暑假初期(2022年6月)学习完jQuery,便开始了JavaWeb和MySQL的学习,第一次前后端碰面,真真切切的见识到了编程的魅力,也让我更加深刻的认识到编程的水不是一般的深。经过两个月的学习,最终决定做书城管理系统来作为JavaWeb阶段的收尾作品,下面带大家浅浅了解一下JavaWeb作品叭。

视频介绍

B站传送门:JavaWeb作品介绍

需要具备的技术

  • Java
  • Servlet
  • JSP
  • HTTP
  • MySQL
  • JDBC
  • HTML
  • CSS
  • JavaScript

主要功能实现

  • 用户和管理员的登录
  • 注册、登录、注销的功能
  • 注册、登录的校验信息回显
  • 用户购买书、修改密码、查询图书
  • 管理修改书价格、种类、库存等,重置用户密码
  • 支持模糊查询、多条件查询

部分代码

管理员修改图书信息

	/**
     * 后台当中的修改图书
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    private void doEditBook(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String author = request.getParameter("author");
        String price = request.getParameter("price");
        String sales = request.getParameter("sales");
        String stock = request.getParameter("stock");

        int count = 0;
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            conn = DBUtil.getConnection();
            String sql = "update t_book set name = ?, author = ?, price = ?, sales = ?, stock = ? where id = ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1, name);
            ps.setString(2, author);
            ps.setString(3, price);
            ps.setString(4, sales);
            ps.setString(5, stock);
            ps.setString(6, id);
            count = ps.executeUpdate();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            DBUtil.close(conn, ps, rs);
        }
        if (count == 1) {
            response.sendRedirect(request.getContextPath() + "/user/manager");
        }
    }

管理员添加图书

   /**
     * 后台当中的添加图书
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    private void doAddBook(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String name = request.getParameter("name");
        String author = request.getParameter("author");
        String price = request.getParameter("price");
        String sales = request.getParameter("sales");
        String stock = request.getParameter("stock");

        int count = 0;
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            conn = DBUtil.getConnection();
            String sql = "insert into t_book(name,author,price,sales,stock) values (?,?,?,?,?)";
            ps = conn.prepareStatement(sql);
            ps.setString(1, name);
            ps.setString(2, author);
            ps.setString(3, price);
            ps.setString(4, sales);
            ps.setString(5, stock);
            count = ps.executeUpdate();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            DBUtil.close(conn, ps, rs);
        }
        //添加成功,重定向到/user/manager,执行doManager方法,再重定向到manager.jsp页面进行数据的展示
        if (count == 1) {
            response.sendRedirect(request.getContextPath() + "/user/manager");
        }
    }

管理员删除图书

 /**
     * 后台当中的删除图书
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    private void doDelBook(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String id = request.getParameter("id");
        int count = 0;
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            conn = DBUtil.getConnection();
            String sql = "delete from t_book where id = ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1, id);
            count = ps.executeUpdate();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            DBUtil.close(conn, ps, rs);
        }
        //删除成功,重定向到/user/manager,执行doManager方法,再重定向到manager.jsp页面进行数据的展示
        if (count == 1) {
            response.sendRedirect(request.getContextPath() + "/user/manager");
        }
    }

用户通过价格查询图书

/**
     * 通过价格实现查询的功能的方法
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    private void doSearchBook(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        List<Book> books = new ArrayList<>();
        String minprice = request.getParameter("minprice");
        String maxprice = request.getParameter("maxprice");
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            conn = DBUtil.getConnection();
            String sql = "select id,name,author,price,sales,stock from t_book  where price >=?  and price <=? order by price";
            ps = conn.prepareStatement(sql);
            ps.setString(1, minprice);
            ps.setString(2, maxprice);
            rs = ps.executeQuery();
            while (rs.next()) {
                String id = rs.getString("id");
                String name = rs.getString("name");
                String author = rs.getString("author");
                String price = rs.getString("price");
                String sales = rs.getString("sales");
                String stock = rs.getString("stock");

                //将上面的数据封装成java对象
                Book book = new Book();
                book.setId(id);
                book.setName(name);
                book.setAuthor(author);
                book.setPrice(price);
                book.setSales(sales);
                book.setStock(stock);

                //将数据放到集合当中
                books.add(book);
            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            DBUtil.close(conn, ps, rs);
        }
        //将一个集合放到请求域当中
        request.setAttribute("bookManager", books);
        //转发
        request.getRequestDispatcher("/search.jsp").forward(request, response);
    }

用户通过书名进行查询图书

/**
     * 通过书名实现的查询(模糊查询)
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    private void doSearchBookByName(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String bookName = request.getParameter("bookName");
        String authorName = request.getParameter("authorName");
        bookName = "%" + bookName + "%";
        authorName = "%" + authorName + "%";
        List<Book> books = new ArrayList<>();
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {

            conn = DBUtil.getConnection();
            String sql  ="";
            if (bookName!="%%"&&authorName!="%%") {
                sql ="SELECT id,name ,author,price,sales,stock FROM t_book  WHERE NAME LIKE ? and author LIKE ? ";
            }
            else {
                sql ="SELECT id,name ,author,price,sales,stock FROM t_book  WHERE NAME LIKE ? or author LIKE ? ";
            }
            ps = conn.prepareStatement(sql);
            ps.setString(1, bookName);
            ps.setString(2, authorName);
            rs = ps.executeQuery();
            while (rs.next()) {
                String id = rs.getString("id");
                String name = rs.getString("name");
                String author = rs.getString("author");
                String price = rs.getString("price");
                String sales = rs.getString("sales");
                String stock = rs.getString("stock");

                //将上面的数据封装成java对象
                Book book = new Book();
                book.setId(id);
                book.setName(name);
                book.setAuthor(author);
                book.setPrice(price);
                book.setSales(sales);
                book.setStock(stock);
                //将数据放到集合当中
                books.add(book);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            DBUtil.close(conn, ps, rs);
        }
        //获取session
        HttpSession session = request.getSession();
        //判断session中的对象是否为空(是否是登录过的)
        if (session.getAttribute("userObj")!=null) {
            //input当中什么都没有输入
            if (bookName.equals("%%")) {
                response.sendRedirect(request.getContextPath() + "/user/welcome");
            } else {
                //将一个集合放到请求域当中
                request.setAttribute("bookManager", books);
                //转发
                request.getRequestDispatcher("/search.jsp").forward(request, response);
            }
        }else {
            //重定向到欢迎页
            response.sendRedirect(request.getContextPath() );
        }
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值