-
Druid简介
Druid是阿里开源的数据库连接池,作为后起之秀,性能比dbcp、c3p0更高,使用也越来越广泛。
当然Druid不仅仅是一个连接池,还有很多其他的功能。
-
MERP系统关于连接池的配置
-
# 数据库连接 jdbc: # # Oracle 数据库配置 type: oracle driver: oracle.jdbc.driver.OracleDriver url: jdbc:oracle:thin:@192.168.8.10:1521/merp username: merp password: ******** testSql: SELECT 1 FROM DUAL # # 数据库连接池配置 pool: # # # 初始化连接数 init: 10 # # 最小连接数 minIdle: 20 # # 最大连接数 maxActive: 1000 # 数据库连接池配置 # # # 获取连接等待超时时间,单位毫秒(1分钟)(4.0.6+) maxWait: 60000 # # # 从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个(4.0.6+) # testOnBorrow: false # testOnReturn: false # # # 间隔多久才进行一次检测,检测需要关闭的空闲连接,单位毫秒(10s)(4.0.6+) timeBetweenEvictionRunsMillis: 10000 # # # 一个连接在池中最小空闲的时间,单位毫秒(20分钟)(4.0.6+) # minEvictableIdleTimeMillis: 1200000 # # 一个连接在池中最大空闲的时间,单位毫秒(60分钟)(4.1.2+) maxEvictableIdleTimeMillis: 3600000 # # # 是否自动回收泄露的连接和超时时间,单位秒(60分钟)(4.0.6+) removeAbandoned: true removeAbandonedTimeout: 3600 # # # Oracle 下会自动开启 PSCache,并指定每个连接上 PSCache 大小。若不指定,则与 maxActive 相同(4.1.5+) # maxPoolPreparedStatementPerConnectionSize: ~
-
引入依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.8</version>
</dependency><dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>代码中使用:
//数据源配置
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mysql://127.0.0.1/db_student?serverTimezone=UTC");
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); //这个可以缺省的,会根据url自动识别
dataSource.setUsername("root");
dataSource.setPassword("abcd");
//下面都是可选的配置
dataSource.setInitialSize(10); //初始连接数,默认0
dataSource.setMaxActive(30); //最大连接数,默认8
dataSource.setMinIdle(10); //最小闲置数
dataSource.setMaxWait(2000); //获取连接的最大等待时间,单位毫秒
dataSource.setPoolPreparedStatements(true); //缓存PreparedStatement,默认false
dataSource.setMaxOpenPreparedStatements(20); //缓存PreparedStatement的最大数量,默认-1(不缓存)。大于0时会自动开启缓存PreparedStatement,所以可以省略上一句代码//获取连接
Connection connection = dataSource.getConnection();//Statement接口
Statement statement = connection.createStatement();
String sql1 = "insert into tb_student (name,age) values ('chy',20)";
statement.executeUpdate(sql1);//PreparedStatement接口
String sql2 = "insert into tb_student (name,age) values ('chy',21)";
PreparedStatement preparedStatement = connection.prepareStatement(sql2);
preparedStatement.execute();//关闭连接
connection.close(); -
Druid介绍及配置说明
最新推荐文章于 2024-07-24 11:33:36 发布