【JAVA项目实战】【图书管理系统】用户查询功能【Servlet】+【Jsp】+【Mysql】

🚀个人主页:欢迎访问Ali.s的首页

⏰ 最近更新:2022年7月25日

⛽ Java框架学习系列:【Spring】【SpringMVC】【Mybatis】

🔥 Java项目实战系列:【飞机大战】【图书管理系统】

⛳ Java基础学习系列:【继承】【封装】【多态】

🏆 通信仿真学习系列:【硬件】【通信】【MATLAB】

🍄 个人简介:通信工程本硕🌈、Java程序员🚴。目前只会CURD😂

💌 点赞 👍 收藏 💗留言 💬 都是我最大的动力💯

在这里插入图片描述


前言

这里是【JAVASE】项目实战的第一节课,学习完MysqlJspServlet之后本该就完成该项目,由于后面进入了框架的学习,内容比较多,所以没有做SE阶段的项目,从今天开始,就来完成一下利用Servlet实现web的项目。想了一下还是做个非常常见的图书管理系统,复习下前面的知识。项目定位为非商用项目,仅适合学习和毕业设计使用。


一、技术选型

工具版本
JDK8
Tomcat8.5
MySQL8.0
IDEA2021.3
Navicat8.0
Maven2.0

二、创建Web项目

1.创建工程

打开IDEA软件,创建一个新的工程,然后在工程下面创建web项目。刚开始创建的可能不是web项目,需要在项目结构中转为web项目。转web项目具体操作如下:
在这里插入图片描述

选择Facets后添加web门面
在这里插入图片描述

web项目进行打包,方便加载到服务器,选择Artifacts后进行添加
在这里插入图片描述
点击ApplyOK后,此时的项目就是web项目了。主要目录结构如下:
在这里插入图片描述

2.配置Tomcat

首先找到IDEA中类似绿色锤子的地方,然后点击进行配置。
在这里插入图片描述
点击+,找到Tomcat server,选择Local
在这里插入图片描述
下面进行一些基本信息的配置,这里的JRE一般选默认1.8
在这里插入图片描述
如果是第一次配置Tomcat,需要注意上面的第5步,目录的选择不要包含中文路径
在这里插入图片描述

3.将web项目打包到Tomcat

继续在上面的第7步页面,将web项目打包到Tomcat
在这里插入图片描述点击ApplyOK后,此时的项目就是web项目就部署到Tomcat服务器。

三、创建数据库

在数据库管理工具Navicat中创建一个book数据库,然后在book数据库中创建一系列的表,操作如下:
在这里插入图片描述
t_user表中设计字段如步骤5,然后向表中添加几条数据。
在这里插入图片描述

四、静态资源引入

在网上找一套静态页面的模板,将其导入到webapp包下面,便于后期美工页面的效果
在这里插入图片描述

五、实现用户信息查询

1.创建项目架构

该项目使用MVC架构来实现,虽然没有使用到后面需要学的SpringMVC框架的知识,但是其根本思想与其相同,均选用controllerdaoentityservice四层模型。
在这里插入图片描述

2.查询用户信息逻辑

查询用户信息的业务逻辑最主要用到ServletJspDBUtilsMySQL技术和工具方法
在这里插入图片描述

3.查询用户信息实现

创建每个包对应的类以及实现的接口和方法。主要是实体类和控制器的Java类和实现dao层和service层的接口以及连接数据库的工具DBUtils类。
在这里插入图片描述
控制层:

package com.song.bookmanagersystem.controller;
import com.song.bookmanagersystem.entity.User;
import com.song.bookmanagersystem.service.UserService;
import com.song.bookmanagersystem.service.impl.UserServiceImpl;
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;

/**
 * 用户的servlet
 * 作用:接收请求,servlet进行处理,处理完毕后返回请求
 *
 */
@WebServlet(name = "UserServlet",urlPatterns = "/userServlet")
public class UserServlet extends HttpServlet {
    //声明userService
    private UserService userService=new UserServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    /**
     * 具体统一处理请求
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //通过service进行信息查询
        List<User> list=userService.getUser(null);
        //进行绑定
        req.setAttribute("list",list);
        //跳转请求
        req.getRequestDispatcher("/user/user.jsp").forward(req,resp);
    }
}

持久层:

package com.song.bookmanagersystem.dao.impl;
import com.song.bookmanagersystem.dao.UserDao;
import com.song.bookmanagersystem.entity.User;
import com.song.bookmanagersystem.utils.DBUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class UserDaoImpl implements UserDao {
    @Override
    public List<User> list(User user) {
        //利用DBUtil实现数据库操作
        QueryRunner queryRunner = DBUtils.getQueryRunner();
        //创建sql
        String sql="select * from t_user";
        List<User> list=null;
        try {
            //BeanListHandler无法完成
            list = queryRunner.query(sql, new ResultSetHandler<List<User>>() {
                @Override
                public List<User> handle(ResultSet resultSet) throws SQLException {
                    List<User> list=new ArrayList<>();
                    while (resultSet.next()){
                        User user=new User();
                        user.setId(resultSet.getInt("id"));
                        user.setUserName(resultSet.getString("user_name"));
                        user.setPassword(resultSet.getString("password"));
                        user.setEmail(resultSet.getString("email"));
                        user.setPhoneNum(resultSet.getString("phone_num"));
                        user.setSalt(resultSet.getString("salt"));
                        user.setIsDeleted(resultSet.getInt("is_deleted"));
                        list.add(user);
                    }
                    return list;
                }
            });
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }

    public static void main(String[] args) {
        UserDaoImpl userDao = new UserDaoImpl();
        for (User user : userDao.list(null)) {
            System.out.println(user);
        }
    }
}

实体层:

package com.song.bookmanagersystem.entity;
public class User {
    private Integer id;
    private String userName;
    private String password;
    private String phoneNum;
    private String email;
    private String salt;
    private Integer isDeleted;

    public User() {
    }

    public User(Integer id, String userName, String password, String phoneNum, String email, String salt, Integer isDeleted) {
        this.id = id;
        this.userName = userName;
        this.password = password;
        this.phoneNum = phoneNum;
        this.email = email;
        this.salt = salt;
        this.isDeleted = isDeleted;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhoneNum() {
        return phoneNum;
    }

    public void setPhoneNum(String phoneNum) {
        this.phoneNum = phoneNum;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSalt() {
        return salt;
    }

    public void setSalt(String salt) {
        this.salt = salt;
    }

    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }
}

业务层:

package com.song.bookmanagersystem.service.impl;

import com.song.bookmanagersystem.dao.UserDao;
import com.song.bookmanagersystem.dao.impl.UserDaoImpl;
import com.song.bookmanagersystem.entity.User;
import com.song.bookmanagersystem.service.UserService;

import java.util.List;

public class UserServiceImpl implements UserService {
    private UserDao userDao=new UserDaoImpl();

    @Override
    public List<User> getUser(User user) {
        //处理业务
        return userDao.list(user);
    }
}

数据库工具类:

package com.song.bookmanagersystem.utils;

import com.mysql.cj.jdbc.MysqlDataSource;
import org.apache.commons.dbutils.QueryRunner;

import javax.management.Query;

public class DBUtils {
    private static MysqlDataSource source;
    static {
        source=new MysqlDataSource();
        source.setUser("root");
        source.setPassword("123456");
        source.setUrl("jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false");
    }
    public static QueryRunner getQueryRunner(){
        return new QueryRunner(source);
    }

}

六、启动服务器测试

启动服务器,让项目在服务器中运行,然后在网页进行查看查询到的数据信息,因为使用了静态模板,所以数据查询比较清楚,展现形式比较好。发现能成功查询到数据库中的用户信息,并且能够将查询到的数据返回到前端页面进行渲染。
在这里插入图片描述


在这里插入图片描述

总结

以上就是今天要讲的内容,本文创建了web项目,使用【Servlet】+【Jsp】+【Mysql】对用户信息进行了数据查询,并且将查询的信息返回到前端页面进行显示,能够很好的完成功能需求。

  • 38
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 61
    评论
图书馆管理系统是一个基于JavaJSPServletMySQL的软件系统,旨在实现对图书馆业务的自动化管理和信息化处理。该系统主要包括以下功能: 1. 图书信息管理:包括图书的录入、修改、删除和查询等操作。管理员可以通过该功能对馆藏图书进行管理和维护,包括图书的基本信息、借阅状态、归还日期等。 2. 读者信息管理:实现读者信息的录入、修改、删除和查询等操作。读者可以通过该功能查询自己的图书借阅情况、预约图书、办理借阅证等。 3. 图书借阅管理:包括读者借书、还书和续借等操作。读者可以通过该功能查询图书的借阅情况、归还日期,并进行相关操作。 4. 图书预约管理:读者可以通过该功能查询图书的可借阅情况,并预约待借图书。系统会自动为读者预留图书,并在指定时间内进行借阅。 5. 图书归还管理:读者归还图书后,管理员通过该功能进行图书归还登记,更新图书的借阅状态和借阅记录。 6. 图书查询统计:系统提供了各种查询和统计功能,包括图书的分类查询、读者借阅情况统计、图书流通统计等,用于方便管理员进行数据分析和决策。 7. 系统权限管理:系统设置了管理员和读者两个角色,分别对应不同的功能和权限。管理员可以对系统进行设置和管理,读者只能进行查询和借阅等操作。 该系统基于MySQL数据库存储图书和读者信息,通过JavaJSPServlet技术实现系统的前后端交互和逻辑处理。借助这些技术,系统可以实现快速、安全、可靠的图书馆管理服务,提高图书馆工作效率和读者体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ali.s

你的鼓励将是我前进的最好动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值