【JAVA项目实战】【图书管理系统】用户查询功能【Servlet】+【Jsp】+【Mysql】
🚀个人主页:欢迎访问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的项目。想了一下还是做个非常常见的图书管理系统,复习下前面的知识。项目定位为非商用项目,仅适合学习和毕业设计使用。
一、技术选型
工具 版本 JDK 8 Tomcat 8.5 MySQL 8.0 IDEA 2021.3 Navicat 8.0 Maven 2.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); } }
六、启动服务器测试
启动服务器,让项目在服务器中运行,然后在网页进行查看查询到的数据信息,因为使用了静态模板,所以数据查询比较清楚,展现形式比较好。发现能成功查询到数据库中的用户信息,并且能够将查询到的数据返回到前端页面进行渲染。
总结
以上就是今天要讲的内容,本文创建了web项目,使用【Servlet】+【Jsp】+【Mysql】对用户信息进行了数据查询,并且将查询的信息返回到前端页面进行显示,能够很好的完成功能需求。