import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties; import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.junit.Test; /**
* 使用dbcp连接池工具
* @author APPle
*
*/
public class TestDBCP {
private static String url = "jdbc:mysql://localhost:3306/mydb";
private static String user = "root";
private static String password = "root";
private static String driverClass = "com.mysql.jdbc.Driver";
@Test
public void test1(){
//1.创建连接池对象
BasicDataSource bds = new BasicDataSource(); //2.使用方法设置连接参数
bds.setUrl(url);
bds.setUsername(user);
bds.setPassword(password);
bds.setDriverClassName(driverClass); //3.设置连接池参数
bds.setInitialSize(5); //初始化连接数
bds.setMaxActive(8);//最大并发连接数
bds.setMaxWait(5000);//最大等待时间,当连接超过最大并发连接数之后,用户需要等待的时间,当超过等待的时间,会抛出连接超时的异常
bds.setMaxIdle(3);//最大空闲连接数量。当程序拿到连接超过了空闲时间没用,那么连接池就会回收这个连接对象
//..... //4.获取连接
for(int i=1;i<=9;i++){
Connection conn = null;
try {
conn = bds.getConnection(); //遵守sun公司的jdbc的DataSource接口规范
/*if(i==1){
PreparedStatement stmt = null;
stmt = conn.prepareStatement("create table student(id int)");
stmt.executeUpdate();
}*/ System.out.println(conn); /*if(i==3){
//释放连接
conn.close();//这里并不是真的关闭连接,而是把连接对象放回连接池
}*/
} catch (SQLException e) {
e.printStackTrace();
}
} } /**
* 使用配置文件的方法读取连接参数和连接池参数(推荐使用)
* 默认规则: properties文件的键名称和设置参数的方法名称保持一致。属性自动设置到BasicDataSource对象中
*/
@Test
public void test2(){
try {
//1.从连接池工厂类中 , 创建连接池对象
Properties prop = new Properties();
//读取jdbc.properties文件
prop.load(TestDBCP.class.getResourceAsStream("/jdbc.properties"));
BasicDataSource bds = (BasicDataSource)BasicDataSourceFactory.createDataSource(prop); //2.获取连接
for(int i=1;i<=9;i++){
Connection conn = null;
try {
conn = bds.getConnection();
/*if(i==1){
PreparedStatement stmt = null;
stmt = conn.prepareStatement("create table student(id int)");
stmt.executeUpdate();
}*/ System.out.println(conn); if(i==3){

  

url=jdbc:mysql://localhost:3306/day19
username=root
password=root
drvierClassName=com.mysql.jdbc.Driver initialSize=5
maxActive=8
maxWait=5000
maxIdle=3000

JDBC代码模板的更多相关文章

  1. SHDP--Working With HBase (二)之HBase JDBC驱动Phoenix与SpringJDBCTemplate的集成

    Phoenix:Phoenix将SQL查询语句转换成多个scan操作,并编排执行最终生成标准的JDBC结果集.   Spring将数据库访问的样式代码提取到JDBC模板类中,JDBC模板还承担了资源管 ...

  2. JDBC连接SQL Server代码模板

    *                  JDBC连接SQL Server数据库 代码模板* Connection: 连接数据库并担任传送数据的任务:* Statement :  执行SQL语句:* Re ...

  3. JDBC连接MySQL数据库代码模板

    下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...

  4. JDBC简介及编码步骤

    一.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  5. JavaWeb 后端 <八> 之 JDBC基礎(全)

    一.JDBC简介 1.JDBC是SUN公司为了简化操作数据推出一套规范.数据库厂商的驱动就是对JDBC的实现. 2.Java Data Base Connectivity(java数据库连接),它主要 ...

  6. 安卓工作室 android studio文件和代码模板,以及汉化出错问题

    安卓工作室 android studio文件和代码模板,以及汉化出错问题 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313 ...

  7. Java数据库连接技术——JDBC

    大家好,今天我们学习了Java如何连接数据库.之前学过.net语言的数据库操作,感觉就是一通百通,大同小异. JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力. JDBC API ...

  8. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

  9. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...

随机推荐

  1. NOIP200805 笨小猴(低效算法)(一大桶水)【A006】

    [A006]笨小猴[难度A]—————————————————————————————————————————————————————————————— [题目要求] 笨小猴的词汇量很小,所以每次做英 ...

  2. 【BZOJ1672】[Usaco2005 Dec]Cleaning Shifts 清理牛棚 动态规划

    [BZOJ1672][Usaco2005 Dec]Cleaning Shifts Description Farmer John's cows, pampered since birth, have ...

  3. crontab安装和用法(定时任务)

    crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行.通常 ...

  4. Mysql创建用户并授权

    运行命令行 mysql -uroot -p 登录mysql use mysql; 创建用户:create user 'test123'@'localhost' identified by '12345 ...

  5. php取整函数ceil,floor,round,intval函数的区别

    开发过程中,遇到数据处理取整的时候,你会用哪个呢,小涛来介绍一下:PHP取整函数有ceil,floor,round,intval,下面详细介绍一下: 1.ceil — 进一法取整说明float cei ...

  6. Oracle 教程

    视频教程 Oracle DBA数据库高级工程师职业学习指南与职业规划视频课程

  7. 从零构建JavaScript的对象系统

    一.正统的类与继承 类是对象的定义,而对象是类的实例(Instance).类不可直接使用,要想使用就必须在内存上生成该类的副本,这个副本就是对象. 以Java为例: public class Grou ...

  8. mysql中影响myisam引擎写入性能的三项设置

    一.LOW_PRIORITY1.对于myisam默认是写操作优先,读操作滞后.通过该项更改,可以使读操作优先,写操作在有空闲的时候再写入.但该项可能在理论上造成,写被永远阻塞. SQL语句中使用示例: ...

  9. P1041 传染病控制

    #include <bits/stdc++.h> using namespace std; const int maxn = 301; std::vector<int> son ...

  10. EntityFramework 性能优化

    1. 查询时如果不缓存数据,可以加快加载速度 //连接数据库 TestDbContext db = new TestDbContext(); //使用 AsNoTracking() 方法后将不会在 D ...