最简DBCP范例
package dbcptest;
import java.sql.Connection;
import java.sql.Statement;
import org.apache.commons.dbcp2.BasicDataSource;
/**
* 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日
*
*/
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://数据库地址:3306/dbcptest?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
bds.setUsername("root");
bds.setPassword("数据库密码");
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())会自动关闭超时的连接
*/
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具