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

2024-06-04 7328阅读

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

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


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


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


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


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


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


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

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

文章目录

  • 前言
  • 一、技术选型
  • 二、创建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项目具体操作如下:

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

        选择Facets后添加web门面

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

        将web项目进行打包,方便加载到服务器,选择Artifacts后进行添加

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

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

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

        2.配置Tomcat

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

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

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

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

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

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

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

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

        3.将web项目打包到Tomcat

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

        【JAVA项目实战】【图书管理系统】用户查询功能【Servlet】+【Jsp】+【Mysql】 第10张点击Apply和OK后,此时的项目就是web项目就部署到Tomcat服务器。

        三、创建数据库

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

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

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

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

        四、静态资源引入

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

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

        五、实现用户信息查询

        1.创建项目架构

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

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

        2.查询用户信息逻辑

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

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

        3.查询用户信息实现

        创建每个包对应的类以及实现的接口和方法。主要是实体类和控制器的Java类和实现dao层和service层的接口以及连接数据库的工具DBUtils类。

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

        控制层:

        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);
            }
        }
        

        六、启动服务器测试

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

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


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

        总结

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


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]