jdbc之dbcp和c3p0的区别
来源:互联网 发布:人工智能的原理与作用 编辑:程序博客网 时间:2024/06/04 06:21
首先要说:
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,
它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序
如果一个项目中如果需要多个连接,如果一直获取连接,断开连接,这样比较浪费资源,如果创建一个池,用池来管理Connection,这样就可以重复使用Connection。有了池我们就不用自己来创建Connection,而是通过池来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池。池就可以再利用这个Connection对象了。这里我们常用的连接池有两种,分别是:DBCP连接池和C3P0连接池,下边是对两种连接池的具体使用和比较。
DBCP连接池:
使用连接池的第一项工作就是导包,这里需要的两个jar包分别是:
在使用写连接池工具类的时候,可以通过配置文件来连接数据库,配置文件中记录了连接数据库的驱动、URL、用户名和密码等信息,但要注意这里的文件后缀为:“.properties”。把通过配置文件连接数据库的部分写在静态代码块中,随着类的加载只加载一次。除了连接数据库,还要提供一个获得数据源的方法和一个获取连接的方法,下边是把连接池写成一个工具类的代码,写成工具类和直接使用的代码几乎相同,就不在重复的写了。
配置文件的部分内容:
代码:(配置文件的命名为:dbcp.properties)
- public class DBCPUtils {
- //首先定义私有的datasource
- private static DataSource datasource;
- //把配置文件部分放在静态代码块中,调用时直接加载
- static{
- try {
- //加载文件
- InputStream is=DBCPUtils.class.getClassLoader().getResourceAsStream("dbcp.properties");
- //实例化properties集合
- Properties prop=new Properties();
- prop.load(is);
- //首先加载核心类
- datasource=BasicDataSourceFactory.createDataSource(prop);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- //提供获得数据源
- public static DataSource getDataSource(){
- return datasource;
- }
- //提供获得连接
- public static Connection getConnection() throws SQLException{
- return datasource.getConnection();
- }
- }
C3P0连接池:
同样的第一步工作是导包:
这种连接池在进行数据库的连接的时候有两种连接方法:使用配置文件和不使用配置文件两种。当然使用配置文件的时候代码要简介的多,配置文件中同样是记录了连接数据库的驱动、URL、用户名和密码等信息。
不使用配置文件的代码:三个步骤:1、导入核心类:ComboPooledDataSource2、基本的四项设置,也就是设置驱动,URL,用户名和密码等四项。3、其他四项。代码如下:
- public class c3p0_test01 {
- public static void main(String[] args) throws Exception {
- //导入一个核心类
- ComboPooledDataSource dataSource = new ComboPooledDataSource();
- //基本四项设置
- dataSource.setDriverClass("com.mysql.jdbc.Driver");
- dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/eeday09");
- dataSource.setUser("root");
- dataSource.setPassword("123");
- //其他四项设置
- dataSource.setInitialPoolSize(10); //初始化连接个数
- dataSource.setMaxPoolSize(40); //最大链接数
- dataSource.setMinPoolSize(5); //设置最小链接数
- dataSource.setAcquireIncrement(2); //设置每次增加的连接数
- Connection conn=dataSource.getConnection(); //进行数据库连接
- System.out.println(conn);
- }
- }
使用配置文件进行连接的写法如下:
- jdbc之dbcp和c3p0的区别
- c3p0和dbcp的区别
- c3p0和dbcp的区别
- DBCP和C3P0的区别
- dbcp和c3p0 以及jdbc的优化
- JDBC JNDI DBCP C3P0区别
- C3P0和DBCP区别
- jdbc连接dbcp和c3p0
- Spring中使用JDBC,C3P0,DBCP的区别
- jdbc升级之连接池 dbcp方法和c3p0方法的比较
- JDBC之连接池DBCP与c3p0的简单使用
- c3p0与dbcp的区别
- c3p0和dbcp进行配置数据库连接池上的区别
- java中数据库连接池框架c3p0和dbcp的区别
- spring的c3p0和dbcp
- spring的c3p0和dbcp
- c3p0 和 dbcp的配置
- c3p0和dbcp的比较
- Tiling_easy version——找规律
- 双向数据绑定
- 递归练习(二)
- Unity自学之路——UGUI 富文本
- 诗歌之美与诗意之存在
- jdbc之dbcp和c3p0的区别
- ASP.NET C#后台调用公网接口(GET, POST)
- linux常用终端指令+如何用vim写一个c程序并运行
- 关于数据库原理总结1
- leaflet-自定义底图
- SSH Tutorial for linux
- [HideInInspector] [Obsolete ]
- 生产者消费者及线程加锁
- Open edX架构