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. 存储过程执行失败与sql668n

    某日监控报存储过程执行失败,查看返回码为sql668n [db2inst1@limt bin]$ db2 ? sql668n SQL0668N Operation not allowed for re ...

  2. C#中的Json的序列化和反序列化

    Json是一种通用的数据格式,我们在数据交换的时候,经常会用到,下面介绍c#中的json序列化和反序列化,当然也可用在asp.net,silverlight,wpf中.我们在下面实例讲解如何进行Jso ...

  3. daisy框架规划

    本框架的目的是建立一个标准化的.net core webapi 框架,利用.net core的性能和跨平台,提供高效的restful service(同时开发也会很高效). 主要组层: Daisy.c ...

  4. 数据库 sql server

    1. if exists(select * from sys.objects where name='test') drop table test go create table test ( id ...

  5. html5新增标签和属性

    结构性标签:<header>头部</header><nav>导航</nav><section>用于表达书的一章或一部分</sectio ...

  6. 不可变字符串NSString

    /*字符串的常用方法*/ //1.通常用来把一些基本数据类型和字符串进行拼接 ; float b = 9527.0; NSString *string = [NSString stringWithFo ...

  7. <四>JDBC_PreparedStatement的使用

    WHY? <1>使用Statement需要进行拼写SQL语句,容易出错; <2>PreparedStatement:是Statement的子接口,可以传入带占位符的SQL语句, ...

  8. Python获取当前日期及时间

    import time def GetNowTime(): return time.strftime("%Y%m%d%H%M%S",time.localtime(time.time ...

  9. Javascript的shift()和push(),unshift()和pop()方法简介

    栈方法: Javascript为数组专门提供了push()和pop()方法,以便实现类似栈的行为.来看下面的例子: var colors=new Array();       //创建一个数组 var ...

  10. HTML基础篇之HTML基本结构

    课堂知识总结 第一接触和学习HTML知识在学习过程中对所属的标签的自己认为的理解和解释. HTML元素:文档里面的标签和内容. 比如:<h1>大家好</h1>  左边的是开始标 ...