jdbc连接池

前言

会有一系列的文章介绍common-*.jar的各种用法,这些工具类jar包都已上传在maven中央库。可以直接通过maven坐标引入使用。源码可以参见:https://gitee.com/rjzjh/common

一些场景

连接一个数据库很容易,直接引入依赖包,组装好jdbc地址,加载驱动类,如果想用连接池又得引入连接池的依赖包,一连串的动作简单而乏味,一般的做法是自己存一个工具类,要的时候复制,改改相应的链接了事。common-jdbc依赖包也就是把这些乏味的事做到一个api中,到要的时候只要修改配置文件的配置项,直接调用api就可以了。

使用示例

使用前需引入依赖包,maven的坐标为:

<dependency>
    <groupId>net.wicp.tams</groupId>
    <artifactId>common-jdbc</artifactId>
    <version>最后版本</version>
</dependency>

使用前需要把配置文件中的配置项做些修改:

common.jdbc.datasource.default.host=localhost
common.jdbc.datasource.default.port=3306
#用于SSH认证的端口,更多的见类:SshAssist
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
#在mysql5.5以下的版本中没有PSCache功能,建议关闭掉maxOpenPreparedStatements=false,maxPoolPreparedStatementPerConnectionSize大于0时为设置为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方法:

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();// DruidAssit.getConnection("default");
		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();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偏锋书生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值