JDBC技术(四)

JDBC 2020-03-07 96 次浏览 本文字数:2314字

本文主要内容:阿里巴巴的Druid数据库连接池、Apache的DBUtils

一、使用数据库连接池连接MySQL数据库

常见数据库连接池

  1. C3P0:是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection和Statement池的DataSources对象
  2. DBCP:DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池。DBCP可以直接的在应用程序中使用
  3. Druid:Druid不仅是一个数据库连接池,还包含一个ProxyDriver、一系列内置的JDBC组件库、一个SQL Parser,支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等
  4. 更多数据库连接池请访问数据库连接池.百度百科

以Druid为例,介绍使用数据库连接池连接MySQL数据库

  1. 声明配置文件(druid.properties)

    url=jdbc:mysql://localhost:3306/mt?serverTimezone=UTC&rewriteBatchedStatements=true    //第一个参数必须serverTimezone必须添加 第二个参数是开始MySQL批量操作
    username=root
    password=你自己的MySQL密码
    driverClassName=com.mysql.cj.jdbc.Driver
    initialSize=10                                                                         //初始池子中的连接数
    maxActive=10                                                                           //默认活跃连接数是8,我们初始设置为10就必须更改为10
    
  2. 使用Druid数据连接池连接MySQL
//使用Druid连接MySQL数据库,这里使用静态代码块的方式,避免数据库连接池的重复创建
//注意:使用前需要导包
private static DataSource source;
static {
    Properties pros = new Properties();
    InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties");
    try {
        if (is != null) {
             pros.load(is);
        }
        source = DruidDataSourceFactory.createDataSource(pros);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
public static DataSource getDataSource(){
     return source;
 }
 public static Connection getConnection() {
    Connection connection = null;
    try {
        connection = source.getConnection();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return connection;
}

二、Apache的DBUtils

  1. commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能
  2. 常用API:

    • org.apache.commons.dbutils.QueryRunner //执行增删改查API

    • org.apache.commons.dbutis.ResultSetHandler //结果集(就是对查询结果的封装)
    • 工具类: org.apache.commons.dbutls.DbUtils //可以使用工具类的API来关闭资源连接,如Connection,PreparedStatement等资源的关闭

  3. 注意:使用前需要导包

本文由 WarlockMarten 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。