【26-27】JDBC工具类封装与模糊查询
2022-02-18 23:56:00 # JDBC

JDBC工具类的封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package _26_26_JDBC工具类的封装.util;

import java.sql.*;

/**
*
*/
public class DBUtil {
/**
* 工具类中的构造方法都是私有的
* 因为工具类中的方法都是静态的,不需要new对象,通过类名调用
*/
private DBUtil(){}

/**
* 加载此类的时候只需要加载一次驱动
*/
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

/**
* 获取数据库连接对象
* @return 连接对象
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(
"jdbc:mysql://localhost:3306/sunlie",
"root",
"root"
);
}

/**
* 关闭资源
* @param conn 连接对象
* @param stmt 数据库操作对象
* @param res 结果集
*/
public static void close(Connection conn, Statement stmt, ResultSet res){
if (res != null) {
try {
res.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

测试工具类并实现模糊查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package _26_26_JDBC工具类的封装;

import _26_26_JDBC工具类的封装.util.DBUtil;
import java.sql.*;

public class 实现模糊查询 {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet res = null;

try {
// get connection
conn = DBUtil.getConnection();
// get precompiled database operation object
String sql = "select ename from emp where ename like ?";
ps = conn.prepareStatement(sql);
ps.setString(1,"_A%");
// execute SQL statement
res = ps.executeQuery();
// precess result set
while (res.next()){
System.out.println(res.getString("ename"));
}
/*
WARD
MARTIN
JAMES
*/
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.close(conn, ps, res);
}
}
}

Prev
2022-02-18 23:56:00 # JDBC
Next