JDBC使用数据库连接池

传统的JDBC链接不节省资源;访问效率不搞笑

数据库连接池:是一个存放数据库链接的容器(集合)
当系统初始化后,容器会被创建,容器中会申请一些链接对象,当用户来访问数据库时,从容器中获取链接对象,用户访问完之后,会将链接对象规范给容器

好处:
节省资源
访问效率高

实现:
标准接口 JDK javax.sql下的 DataSource
1.方法:
获取链接:getConnection()
归还链接:Connection.close()如果链接对象getConnection()时从链接池中获取的,那么调用这个方法,则不会关闭数据库链接而是归还链接

一般我们不去实现DataSource,由数据库厂商来实现常用的两个技术:
1.C3P0:
2.Druid: 阿里巴巴提供的

C3P0:
1.导入包
需要导入三个个包:
JDBC包
mchange-commons-java-0.2.12.jar
c3p0-0.9.5.2.jar

2、定义配置文件:
c3p0.properties或者c3p0-config-xml(必须)
路径:定义类路径 (SRC下面)文件放在SRC下即可
3、创建核心对象 ComboPoolDataSoruce
4、获取链接:getConnection

package cn.study.c3p0;
import com.mchange.v2.c3p0.ComboPooledDataSource;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public class C3P0Dmo1 {
    public static void main(String[] args) throws SQLException {
        //没有参数使用默认配置;传递参数指定配置文件里的 name=“属性值”;  就获取到相应的数据库ComboPooledDataSource
        ComboPooledDataSource ds = new ComboPooledDataSource();
        //获取链接对象
        Connection conn = ds.getConnection();
        String sql = "update account set balance =55000";
        Statement statement = conn.createStatement();
        statement.execute(sql);
        //归还连接
        conn.close();
    }
}

······································································································
Druid:
步骤:
1.导入包
2.定义配置文件properties形式的(名称可是任意的)
3.加载配置文件
4.获取数据库链接池对象(通过工厂类获取) DruidDataSourceFactory
DruidDataSourceFactory.createDataSource()
5.获取链接getConnection

package cn.study.c3p0;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;

public class DruidDemo {
    public static void main(String[] args) throws IOException {
//        加载配置文件
        Properties properties = new Properties();
        InputStream resourceAsStream = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
        properties.load(resourceAsStream);
        //获取链接池对象
        try {
            DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
            Connection connection = dataSource.getConnection();



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


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值