DBCP链接池--DataSource

举报
brucexiaogui 发表于 2021/12/30 00:17:18 2021/12/30
【摘要】 DBCP链接池--DataSource 一、DBCP链接池的核心类 1、BasicDataSource - 此实现了javax.sql.DataSource接口。 2、BasicDataSourceFactory – 工厂类,通过读取一个资源文件,创建一个dataSource。 二、DBCP获取链接池实例 1、配置文件内...

DBCP链接池--DataSource


一、DBCP链接池的核心类

1、BasicDataSource - 此实现了javax.sql.DataSource接口。

2、BasicDataSourceFactory – 工厂类,通过读取一个资源文件,创建一个dataSource。

二、DBCP获取链接池实例

1、配置文件内容以Key--Value形式书写,Key的名称和BasicDasource类设置的属性名称是一样的,不能随便写Key的名称,不然创建BasicDataSource读取时会报错

配置文件截图如下:


配置文件内容


2、DBCP获取连接池实例


  
  1. package com.test.dbcp;
  2. import java.sql.Connection;
  3. import java.util.Properties;
  4. import javax.sql.DataSource;
  5. import org.apache.commons.dbcp.BasicDataSourceFactory;
  6. public class DbcpDataSource {
  7. /*
  8. * 重点:创建一个DataSource
  9. * 步骤为:1、用Properties类读取配置文件。
  10. * 2、通过工厂类,读取这个Properties类获取的配置文件,创建出DataSource
  11. * DataSource作用:
  12. * 创建DataSource可以返回多个连接。可以实现dbutil简化操作数据库的流程。
  13. */
  14. //1、创建一个静态的datasource
  15. private static DataSource ds;
  16. //2、在静态代码块中,给ds赋值
  17. static{
  18. //读取资源文件
  19. try{
  20. Properties p = new Properties();
  21. p.load(DbcpDataSource.class.getClassLoader().getResourceAsStream("dbcp.properties"));
  22. //在dbcp中有一个工厂类,读取一个资源文件,创建一个datasource
  23. ds = BasicDataSourceFactory.createDataSource(p);
  24. System.out.println("创建DataSource为"+ds);
  25. }catch(Exception e){
  26. throw new RuntimeException(e);
  27. }
  28. }
  29. //提供一个方法用于获取整个datasource对象
  30. public static DataSource getDs(){
  31. return ds;
  32. }
  33. //提供一个方法,获取connection连接
  34. public static Connection getCon(){
  35. Connection con = null;
  36. try{
  37. con = ds.getConnection();
  38. System.out.println("通过DataSource获取connection连接"+con);
  39. }catch(Exception e){
  40. e.printStackTrace();
  41. }
  42. return con;
  43. }
  44. }


三、测试获取BasicDtaSource连接池和获取Connection


1、测试类


  
  1. package com.test.ts;
  2. import org.junit.Test;
  3. import com.test.dbcp.DbcpDataSource;
  4. public class DataSourceTest {
  5. @Test
  6. public void dstest(){
  7. DbcpDataSource.getDs();
  8. }
  9. @Test
  10. public void contest(){
  11. DbcpDataSource.getCon();
  12. }
  13. }

2、测试结果

创建DataSource为org.apache.commons.dbcp.BasicDataSource@102e6640
通过DataSource获取connection连接jdbc:mysql://127.0.0.1:3306/long1?characterEncoding=UTF8, UserName=root@localhost, MySQL-AB JDBC Driver


文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/78030477

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。