Java 数据库连接池DBPool 介绍
程序员文章站
2022-03-20 14:14:15
目录1、配置参数2、使用2.1、直接使用2.1.1、引入依赖2.1.2、使用例子2.2、在 springboot 中使用2.1.1、引入依赖2.1.2、单数据源2.1.3、多数据源前言:dbpool...
前言:
dbpool
是一个高效易配置的数据库连接池,支持 jdbc 4.2,但目前已经不维护了;本文简单介绍下 dbpool 的使用,文中使用到的软件版本:java 1.8.0_191、dbpool 7.0.1、spring boot 2.3.12.release。
1、配置参数
参数 | 描述 |
name | 连接池名称 |
description | 描述 |
driverclassname | 驱动名称 |
url | 连接 url |
user | 用户名 |
password | 密码 |
passworddecoderclassname | 密码解密类名,需实现 snaq.db.passworddecoder 接口,需要有无参构造方法 |
minpool | 连接池最小连接数 |
maxpool | 连接池最大连接数 |
maxsize | 可以创建的最大连接数 |
idletimeout | 空闲连接数最大存活时间(秒),0 表示无限制 |
logintimeout | 创建连接的超时时间(秒) |
validatorclassname | 校验类名,需实现 snaq.db.connectionvalidator 接口,需要有无参构造方法 |
validatorquery | 校验查询语句 |
详细说明可参考官网文档:https://www.snaq.net/software/dbpool/
2、使用
2.1、直接使用
2.1.1、引入依赖
<dependency> <groupid>net.snaq</groupid> <artifactid>dbpool</artifactid> <version>7.0.1</version> </dependency>
2.1.2、使用例子
package com.abc.demo.general.dbpool; import snaq.db.dbpooldatasource; import java.sql.connection; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; public class dbpoolcase { public static void main(string[] args) { dbpooldatasource dbpooldatasource = new dbpooldatasource(); dbpooldatasource.setname("dbpool连接池"); dbpooldatasource.setdescription("dbpool连接池测试"); dbpooldatasource.setdriverclassname("com.mysql.cj.jdbc.driver"); dbpooldatasource.seturl("jdbc:mysql://10.40.9.11:3306/mydb?useunicode=true&characterencoding=utf-8"); dbpooldatasource.setuser("root"); dbpooldatasource.setpassword("123456"); dbpooldatasource.setminpool(5); dbpooldatasource.setmaxpool(10); dbpooldatasource.setmaxsize(30); dbpooldatasource.setidletimeout(3600); dbpooldatasource.setlogintimeout(60); dbpooldatasource.setvalidationquery("select 1"); connection connection = null; try { connection = dbpooldatasource.getconnection(); statement st = connection.createstatement(); resultset rs = st.executequery("select version()"); if (rs.next()) { system.out.println(rs.getstring(1)); } } catch (sqlexception e) { e.printstacktrace(); } finally { close(connection); } //实际使用中一般是在应用启动时初始化数据源,应用从数据源中获取连接;并不会关闭数据源。 dbpooldatasource.release(); } private static void close(connection connection) { if (connection != null) { try { connection.close(); } catch (sqlexception e) { e.printstacktrace(); } } } }
2.2、在 springboot 中使用
2.1.1、引入依赖
<parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.3.12.release</version> <relativepath /> </parent> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-jdbc</artifactid> </dependency> <dependency> <groupid>net.snaq</groupid> <artifactid>dbpool</artifactid> <version>7.0.1</version> </dependency> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> </dependency> </dependencies>
2.1.2、单数据源
application.yml 配置:
spring: datasource: dbpool: name: dbpool连接池 description: dbpool连接池测试 driver-class-name: com.mysql.cj.jdbc.driver url: jdbc:mysql://10.40.9.11:3306/mydb?useunicode=true&characterencoding=utf-8 user: root password: 123456 min-pool: 5 max-pool: 10 max-size: 30 idle-timeout: 3600 login-timeout: 60 validator-query: select 1
数据源配置类:
package com.abc.demo.config; import org.springframework.boot.context.properties.configurationproperties; import org.springframework.boot.jdbc.datasourcebuilder; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; import snaq.db.dbpooldatasource; import javax.sql.datasource; @configuration public class datasourceconfig { @bean("datasource") @configurationproperties(prefix = "spring.datasource.dbpool") public datasource datasource() { return datasourcebuilder.create().type(dbpooldatasource.class).build(); } }
使用:
@autowired private datasource datasource;
2.1.3、多数据源
application.yml 配置:
spring: datasource: dbpool: db1: name: dbpool连接池1 description: dbpool连接池测试1 driver-class-name: com.mysql.cj.jdbc.driver url: jdbc:mysql://10.40.9.11:3306/mydb?useunicode=true&characterencoding=utf-8 user: root password: 123456 min-pool: 5 max-pool: 10 max-size: 30 idle-timeout: 3600 login-timeout: 60 validator-query: select 1 db2: name: dbpool连接池2 description: dbpool连接池测试2 driver-class-name: com.mysql.cj.jdbc.driver url: jdbc:mysql://10.40.9.12:3306/mydb?useunicode=true&characterencoding=utf-8 user: root password: 123456 min-pool: 5 max-pool: 10 max-size: 30 idle-timeout: 3600 login-timeout: 60 validator-query: select 1
数据源配置类:
package com.abc.demo.config; import org.springframework.boot.context.properties.configurationproperties; import org.springframework.boot.jdbc.datasourcebuilder; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; import snaq.db.dbpooldatasource; import javax.sql.datasource; @configuration public class datasourceconfig { @bean("datasource1") @configurationproperties(prefix = "spring.datasource.dbpool.db1") public datasource datasource1() { return datasourcebuilder.create().type(dbpooldatasource.class).build(); } @bean("datasource2") @configurationproperties(prefix = "spring.datasource.dbpool.db2") public datasource datasource2() { return datasourcebuilder.create().type(dbpooldatasource.class).build(); } }
使用:
@autowired @qualifier("datasource1") private datasource datasource1; @autowired @qualifier("datasource2") private datasource datasource2;
到此这篇关于 java 数据库连接池dbpool 介绍的文章就介绍到这了,更多相关 java 连接池dbpool 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
荐 Java——数据库编程JDBC之数据库连接池技术(C3P0与Druid,提供了Druid的工具类)
-
【⭐】Java—Spring-—数据库操作—使用内置连接池,报读取不到驱动错误。Could not load JDBC driver class。
-
Java数据库连接池c3p0过程解析
-
使用JAVA中的动态代理实现数据库连接池 JavaSQLJDBC应用服务器互联网
-
Java 数据库连接池的技术选型都应考虑哪些要素
-
Java框架数据库连接池比较(c3p0,dbcp和proxool)
-
JDCP连接池连接数据库报错:java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(
-
Java数据库连接池连接Oracle过程详解
-
java学习笔记之数据库连接池(DBCP和C3P0)
-
Java开发中JDBC连接mysql数据库使用介绍