图书管理系统( JSP + JDBC + Servlet )实现-03:项目搭建 & 工具类的实现 &依赖导入
Posted Z && Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图书管理系统( JSP + JDBC + Servlet )实现-03:项目搭建 & 工具类的实现 &依赖导入相关的知识,希望对你有一定的参考价值。
01: 流程分析和数据库建表阶段
02: 编写和配置过滤器(防止页面乱码)
03:项目搭建 & 工具类的实现 &依赖导入
04: 建立数据库的实体类(pojo)
05: 实现登录功能
06: 查询所有书籍功能
07:模糊查询功能
08:页面所有功能实现(附源码下载)
1.4 创建项目(后面全程使用IDEA)
可以不用Maven项目, 我只是为了方便导入依赖才选择的Maven项目,你们只需要导入相关的依赖就行了。
选中Maven项目,Maven是一个项目管理工具,最大的好处是可以方便的导入依赖
配置项目基本信息
增加Web支持
1.5 编写数据库配置文件
database.properties
# 配置数据库驱动
driver=com.mysql.cj.jdbc.Driver
# 数据库地址
url=jdbc:mysql://localhost:3306/cqutlms?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
# 配置数据库用户名
user=root
# 配置密码
password=317525
1.6 建立操作数据库的公共类
遵循高耦合,低内聚的思想,封装公共的工具类是非常好的习惯
BaseDao.java
package com.tian.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
/**
* ClassName: BaseDao
* Description: 操作数据库的基类(工具类)
*
* @author Tianjiao
* @date 2021/5/27 21:56
*/
public class BaseDao {
// 静态代码块,在类加载的时候执行
static {
init();
}
private static String driver;
private static String url;
private static String user;
private static String password;
/**
* MethodName: init
* Description: 初始化连接参数,从配置文件里获得
*
* @return void
* @date 2021/5/27 22:00
* @params: []
* @author Tianjiao
*/
public static void init() {
Properties params = new Properties();
InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("database.properties");
try {
params.load(is);
} catch (IOException e) {
e.printStackTrace();
}
driver = params.getProperty("driver");
url = params.getProperty("url");
user = params.getProperty("user");
password = params.getProperty("password");
}
/**
* MethodName: getConnection
* Description: 获取数据库连接
*
* @return java.sql.Connection
* @date 2021/5/27 22:00
* @params: []
* @author Tianjiao
*/
public static Connection getConnection() {
Connection connection = null;
try {
// 加载数据库驱动
Class.forName(driver);
connection = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
/**
* MethodName: execute
* Description: 查询操作
*
* @return java.sql.ResultSet
* @date 2021/5/27 22:01
* @params: [connection, preparedStatement, rs, sql, params]
* @author Tianjiao
*/
public static ResultSet execute(Connection connection, PreparedStatement preparedStatement, ResultSet rs,
String sql, Object[] params) throws Exception {
preparedStatement = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
// 占位符从1开始,但是数组是从0开始
preparedStatement.setObject(i + 1, params[i]);
}
rs = preparedStatement.executeQuery();
return rs;
}
/**
* MethodName: execute
* Description: 增删改操作
*
* @return int
* @date 2021/5/27 22:02
* @params: [connection, preparedStatement, sql, params]
* @author Tianjiao
*/
public static int execute(Connection connection, PreparedStatement preparedStatement,
String sql, Object[] params) throws Exception {
int updateRows = 0;
preparedStatement = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
preparedStatement.setObject(i + 1, params[i]);
}
updateRows = preparedStatement.executeUpdate();
return updateRows;
}
/**
* MethodName: closeResource
* Description: 关闭资源
*
* @return boolean
* @date 2021/5/27 22:02
* @params: [connection, preparedStatement, rs]
* @author Tianjiao
*/
public static boolean closeResource(Connection connection, PreparedStatement preparedStatement, ResultSet rs) {
boolean flag = true;
if (rs != null) {
try {
rs.close();
rs = null;
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
if (preparedStatement != null) {
try {
preparedStatement.close();
// 垃圾回收, 设置为空后, JVM会自动回收
preparedStatement = null;
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
if (connection != null) {
try {
connection.close();
// 垃圾回收, 设置为空后, JVM会自动回收
connection = null;
} catch (SQLException e) {
e.printStackTrace();
flag = false;
}
}
return flag;
}
}
1.7 导入相关依赖
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tian</groupId>
<artifactId>cqutlms</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- Servlet 依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- Jsp 依赖 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
<!-- jstl表达式的依赖 -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- standard标签库 -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!--连接数据库的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>
</project>
以上是关于图书管理系统( JSP + JDBC + Servlet )实现-03:项目搭建 & 工具类的实现 &依赖导入的主要内容,如果未能解决你的问题,请参考以下文章
图书管理系统( ( JSP + JDBC + Servlet ) )实现-06: 查询所有书籍功能
图书管理系统( JSP + JDBC + Servlet)实现-07:模糊查询功能
图书管理系统( JSP + JDBC + Servlet )实现-08:页面所有功能实现
图书管理系统( ( JSP + JDBC + Servlet ) )实现-04: 建立数据库的实体类(pojo)