Apache JDBC工具(commons-dbutils)
# maven
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.3.1</version>
</dependency>
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.9.1</version>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# JdbcUtils
package cn.lisynet.lisycollections;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
/**
* @author lisy
* @Description
* @Date 2021/11/11 21:29
*/
public class JdbcUtils {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.p6spy.engine.spy.P6SpyDriver");
String db = "jdbc:p6spy:postgresql://127.0.0.1:5432/test?charSet=UTF-8&&allowEncodingChanges=true&serverTimezone=Asia/Shanghai&user=postgres&password=123321";
Connection connection = DriverManager.getConnection(db);
MapListHandler beanListHandler = new MapListHandler();
MapHandler mapHandler = new MapHandler();
QueryRunner runner = new QueryRunner();
// ---------------------- map
List<Map<String, Object>> list
= runner.query(connection, "SELECT * FROM test where pkid in (?)", beanListHandler, "048bfee8e728445d87089294f8529fe4");
Map<String, Object> map
= runner.query(connection, "SELECT * FROM test where pkid='048bfee8e728445d87089294f8529fe4'", mapHandler);
// ---------------------- bean
BeanHandler<ObjBean> beanHandler = new BeanHandler<>(ObjBean.class);
ObjBean obj = runner.query(connection,"select * from test where pkid = ?",beanHandler,"048bfee8e728445d87089294f8529fe4");
BeanListHandler<ObjBean> beanBeanListHandler = new BeanListHandler<>(ObjBean.class);
String sql = "select * from test limit ?";
List<ObjBean> beans = runner.query(connection,sql,beanBeanListHandler,20000);
String inSql = "select * from test where pkid in (";
StringBuilder builder = new StringBuilder(inSql);
int size = beans.size();
String[] params = new String[size];
for(int i=0;i<size;i++){
builder.append("?");
if((i+1)<size){
builder.append(",");
}
ObjBean t = beans.get(i);
params[i] = t.getPkid();
}
builder.append(")");
List<ObjBean> beansIn = runner.query(connection,builder.toString(),beanBeanListHandler,params);
// ---------count,sum,avg
Map<String,Object> bj = runner.query(connection,"select count(1) as num from test",mapHandler);
bj = runner.query(connection,"select sum(az001) as num from test",mapHandler);
bj = runner.query(connection,"select avg(az001) as num from test",mapHandler);
}
}
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
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
上次更新: 2024/01/07, 07:44:52