jdbc连接池
前言
会有一系列的文章介绍common-*.jar的各种用法,这些工具类jar包都已上传在maven中央库。可以直接通过maven坐标引入使用。源码可以参见:https://gitee.com/rjzjh/common
一些场景
连接一个数据库很容易,直接引入依赖包,组装好jdbc地址,加载驱动类,如果想用连接池又得引入连接池的依赖包,一连串的动作简单而乏味,一般的做法是自己存一个工具类,要的时候复制,改改相应的链接了事。common-jdbc依赖包也就是把这些乏味的事做到一个api中,到要的时候只要修改配置文件的配置项,直接调用api就可以了。
使用示例
使用前需引入依赖包,maven的坐标为:
1 2 3 4 5
| <dependency> <groupId>net.wicp.tams</groupId> <artifactId>common-jdbc</artifactId> <version>最后版本</version> </dependency>
|
使用前需要把配置文件中的配置项做些修改:
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
| common.jdbc.datasource.default.host=localhost common.jdbc.datasource.default.port=3306
common.jdbc.datasource.default.sshLocalhostprot=null common.jdbc.datasource.default.defaultdb=null common.jdbc.datasource.default.urlparam=useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false common.jdbc.datasource.default.username=root common.jdbc.datasource.default.password=mysql common.jdbc.datasource.default.driverClassName=com.mysql.jdbc.Driver common.jdbc.datasource.default.dbType=mysql common.jdbc.datasource.default.initialSize=3 common.jdbc.datasource.default.minIdle=3 common.jdbc.datasource.default.maxActive=200 common.jdbc.datasource.default.maxWait=60000 common.jdbc.datasource.default.timeBetweenEvictionRunsMillis=60000 common.jdbc.datasource.default.minEvictableIdleTimeMillis=300000 common.jdbc.datasource.default.validationQuery=select 1 common.jdbc.datasource.default.testWhileIdle=true common.jdbc.datasource.default.testOnBorrow=false common.jdbc.datasource.default.testOnReturn=false common.jdbc.datasource.default.poolPreparedStatements=true
common.jdbc.datasource.default.maxPoolPreparedStatementPerConnectionSize=100 common.jdbc.datasource.default.filters=stat,wall common.jdbc.datasource.default.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
|
上面的这些参数是默认配置,如果需要修改,只需通过“Conf.overProp(props);”覆盖相关的配置项就可以了。
具体修改方法见下面的testDruid方法:
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
| package net.wicp.tams.common.jdbc.test;
import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties;
import javax.sql.DataSource;
import org.junit.Test;
import net.wicp.tams.common.Conf; import net.wicp.tams.common.jdbc.DruidAssit;
public class DruidTest { @Test public void testDruid() throws SQLException { Properties props = new Properties(); props.put("common.jdbc.datasource.default.host", "localhost"); props.put("common.jdbc.datasource.default.username", "root"); props.put("common.jdbc.datasource.default.password", "mysql"); props.put("common.jdbc.datasource.default.port", 3307); Conf.overProp(props); Connection connection = DruidAssit.getConnection(); Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery("select count(*) from test.demo"); rs.next(); System.out.println(rs.getLong(1)); statement.close(); connection.close(); }
@Test public void testSource() throws SQLException { Properties props = new Properties(); props.put("host", "localhost"); props.put("username", "root"); props.put("password", "mysql"); props.put("port", 3307); DataSource newDataSource = DruidAssit.getDataSourceNoConf("other", props); Connection connection = newDataSource.getConnection(); System.out.println(connection); connection.close(); } }
|