最简DBCP范例
时间:2021-07-01 10:21:17
帮助过:14人阅读
dbcptest;
/**
* DBCP数据库连接池(提升效率)
* 导包dbcp
* 创建数据库连接池:
* 1 创建数据源对象(BasicDataSource)
* 2 设置连接信息
* setDriverClassName()数据库驱动
* setUrl()数据库地址及库
* setUsername()数据库用户名
* setPassword()数据库密码
* setInitialSize()连接池初始连接数量
* setMaxActive()连接池最大连接数量
* setMaxWait()设置最大等待时间(超时的连接会被数据库连接池自动回收)
* 注意:新版本中
* setMaxActive 替换成了 setMaxTotal
* setMaxWait 替换成了 setMaxWaitMillis
* 3 获取连接对象
* 4 操作连接对象
*
* Title: DBCPDemo
*
* Description:
*
* @author Ethan
*
* @date 2019年6月23日
*
*/
import java.sql.Connection;
import java.sql.Statement;
import org.apache.commons.dbcp2.BasicDataSource;
public class DBCPDemo {
public static void main(String[] args)
throws Exception {
//1 创建数据源对象
BasicDataSource bds =
new BasicDataSource();
//2 设置连接信息
bds.setDriverClassName("com.mysql.cj.jdbc.Driver"
);
bds.setUrl("jdbc:mysql://104.156.238.17:3306/dbcptest?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"
);
bds.setUsername("root"
);
bds.setPassword("P1ng@n151008"
);
bds.setInitialSize(3
);
bds.setMaxTotal(5
);
bds.setMaxWaitMillis(3000
);
//获取连接对象
Connection conn =
bds.getConnection();
System.out.println(conn);
//操作连接对象
/**
* 如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false
* 即:
* 如果返回结果是一个ResultSet 对象则返回true
* 如果返回值不是一个ResultSet 对象则返回false
*/
Statement stat =
conn.createStatement();
String sql = "drop table dbcpt1"
;
boolean restat =
stat.execute(sql);
System.out.println(restat);//此处返回false是正常的
sql = "create table dbcpt1(id int primary key auto_increment,name varchar(20))"
;
restat =
stat.execute(sql);
System.out.println(restat);//此处返回false是正常的
/**
* 使用dbcp不需要关闭连接,数据库连接池会自动根据情况选择关闭空闲连接
* 设置setMaxWait()(setMaxWaitMillis())会自动关闭超时的连接
*/
}
}
最简DBCP范例
标签:exception public title mysq initial package wait bool rip