JDBC??DBCP 数据库连接池的实现方式

发布时间:2021-10-23 11:58:03

本博客用于自己记录学*整理知识
首先需要导入jar包
commons-dbcp-1.4.jar、commons-pool-1.5.5.jar
在src文件下创建 dbcpconfig.properties 文件用于读取数据库


// dbcpconfig.properties 文件代码


driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&uesSSL=false
username=root
password=root



java工具类实现(简化连接数据库的过程)


private static DataSource dataSource=null;
static {
try{
InputStream resourceAsStream = JdbcUtils_dbcp.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
Properties properties = new Properties();
properties.load(resourceAsStream);

//创建数据源 工厂模式--> 创建对象
dataSource = BasicDataSourceFactory.createDataSource(properties);


} catch (Exception e) {
e.printStackTrace();
}
}

//获取连接
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}

//释放资源
public static void release(Connection conn, Statement st, ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(st!=null){
try {
st.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}

}
if(conn!=null){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}


对数据库的插入操作测试
```java
public static void main(String[] args) {
Connection connection = null;
PreparedStatement statement = null;

try {
connection = JdbcUtils_dbcp.getConnection();

String sql = "INSERT INTO users(`id`,`NAME`,`PASSWORD`,`email`,`birthday`) VALUES(?,?,?,?,?)";

statement = connection.prepareStatement(sql);

//手动给参数赋值
statement.setInt(1,4);
statement.setString(2,"zhenzhen");
statement.setString(3,"132321456");
statement.setString(4,"2267253192@qq.com");
statement.setDate(5,new java.sql.Date(new Date().getTime()));

int i = statement.executeUpdate();
if(i>0){
System.out.println("插入成功~");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JdbcUtils_dbcp.release(connection,statement,null);
}
}


相关文档

  • 2020年9月份冷不冷 9月份会有冷空气吗
  • 2020年湖北黄冈市考试录用公务员资格复审公告
  • 为什么红加绿是黄色而红加蓝是紫色
  • 幼儿手工橡皮泥图片
  • leetcode ?? 面试题 17.08. 马戏团人塔
  • 黛米戒指怎么样黛米戒指好看吗
  • 苹果手机wifi打不开怎么办
  • 魔兽世界各专业有哪些用啊
  • 码农写文档,其实不简单
  • 校长在学生会上的讲话
  • ubuntu20 安装mysql 和设置密码
  • 电容104是什么意思
  • Linux系统知识点
  • 应急演练领导讲话精选多篇
  • 环境绿化工程承包精选合同样本
  • 浅谈公共艺术中所体现的价值取向论文
  • 骆驼祥子摘抄加赏析20句
  • 新买的风信子怎么养
  • DriodDeveloper 技术干货大汇总
  • 小学英语四年级下册:第六单元练习题
  • 2018高校自主招生自荐信模板
  • 疾病保险 请问买重大疾病保险一年多少钱?
  • 特殊的“清洁工”
  • 师范生实习总结精品合集
  • 算法导论C语言实现: 分治策略 -- 最大子数组问题
  • 德国留学申请流程介绍
  • 初中物理答题高分技巧
  • win10+tensorflow:ImportError: No module named '_pywrap_tensorflow_internal',这波操作真让人窒息
  • 检讨书的结尾怎么写
  • 健康饮料平面广告图
  • 猜你喜欢

    电脑版