小工具知识网

当前位置: 首页 > 行业知识 > 【JAVA项目实战】【图书管理系统】用户查询功能【Servlet】+【Jsp】+【Mysql】

行业知识

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

2026-11-12 01:19:26 来源:互联网转载

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

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

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

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

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

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

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

点赞 收藏 留言 都是我最大的动力

文章目录

  • 前言
  • 一、技术选型
  • 二、创建Web项目
    • 1.创建工程
    • 2.配置Tomcat
    • 3.将web项目打包到Tomcat
    • 三、创建数据库
    • 四、静态资源引入
    • 五、实现用户信息查询
      • 1.创建项目架构
      • 2.查询用户信息逻辑
      • 3.查询用户信息实现
      • 六、启动服务器测试
      • 总结

        前言

        这里是【JAVASE】项目实战的第一节课,学习完Mysql、Jsp、Servlet之后本该就完成该项目,由于后面进入了框架的学习,内容比较多,所以没有做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后进行添加

        点击Apply和OK后,此时的项目就是web项目了。主要目录结构如下:

        2.配置Tomcat

        首先找到IDEA中类似绿色锤子的地方,然后点击进行配置。

        点击+,找到Tomcat server,选择Local

        下面进行一些基本信息的配置,这里的JRE一般选默认1.8

        如果是第一次配置Tomcat,需要注意上面的第5步,目录的选择不要包含中文路径

        3.将web项目打包到Tomcat

        继续在上面的第7步页面,将web项目打包到Tomcat

        点击Apply和OK后,此时的项目就是web项目就部署到Tomcat服务器。

        三、创建数据库

        在数据库管理工具Navicat中创建一个book数据库,然后在book数据库中创建一系列的表,操作如下:

        在t_user表中设计字段如步骤5,然后向表中添加几条数据。

        四、静态资源引入

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

        五、实现用户信息查询

        1.创建项目架构

        该项目使用MVC架构来实现,虽然没有使用到后面需要学的SpringMVC框架的知识,但是其根本思想与其相同,均选用controller、dao、entity、service四层模型。

        2.查询用户信息逻辑

        查询用户信息的业务逻辑最主要用到Servlet,Jsp,DBUtils,MySQL技术和工具方法

        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 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 list(User user) {        //利用DBUtil实现数据库操作        QueryRunner queryRunner = DBUtils.getQueryRunner();        //创建sql        String sql="select * from t_user";        List list=null;        try {            //BeanListHandler无法完成            list = queryRunner.query(sql, new ResultSetHandler() {                @Override                public List handle(ResultSet resultSet) throws SQLException {                    List 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 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);    }}

        六、启动服务器测试

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


        总结

上一篇:解决302报错问题,实用指南与技巧

下一篇:云服务器怎么用?