Lisy's blog Lisy's blog
首页
后端
前端
读书
关于

新晴

做事情积极主动。积极主动不仅指行事的态度,还意味着为人一定要对自己的人生负责。个人行为取决于自身的抉择,而不是外在的环境,人类应该有营造有利的外在环境的积极性和责任感。
首页
后端
前端
读书
关于
  • Java

    • Java总览
    • 日常总结

      • hutool常用日期功能
      • 基于hutool请求工具使用代理
      • Apache JDBC工具(commons-dbutils)
        • maven
        • JdbcUtils
      • jdbcTemplate(NamedParameterJdbcTemplate )使用
      • spring boot RestTemplate get设置header
      • git常用命令
      • 使用阿里seata处理分布式事务(nacos作为注册中心)
      • java诊断工具Arthas使用
      • 利用jsoup获取网页内容,然后对内容进行分析
      • mysql允许远程访问
      • java部署速查
    • 效率工具

  • linux

  • python

  • 其他

  • python

  • 后端
  • Java
  • 日常总结
lisy
2023-09-05
目录

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

# 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
上次更新: 2024/01/07, 07:44:52
基于hutool请求工具使用代理
jdbcTemplate(NamedParameterJdbcTemplate )使用

← 基于hutool请求工具使用代理 jdbcTemplate(NamedParameterJdbcTemplate )使用→

最近更新
01
Anaconda conda命令速查
01-05
02
奇特的一生
06-16
03
docker学习
02-16
更多文章>
Theme by Vdoing | Copyright © 2020-2025 lisy | 备案号:鲁ICP备18023702号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式