700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 数据库连接池c3p0和德鲁伊druid数据库连接池的使用 JDBC讲解第二篇

数据库连接池c3p0和德鲁伊druid数据库连接池的使用 JDBC讲解第二篇

时间:2024-02-17 12:27:40

相关推荐

数据库连接池c3p0和德鲁伊druid数据库连接池的使用 JDBC讲解第二篇

接上一篇的文章继续来说

什么是数据库连接池

数据库连接池就是一个容器。里面放的就是Connection对象

c3p0数据库连接池的使用

使用的步骤

导入jar包创建配置文件创建数据库连接对象获取连接

导入jar包

c3p0需要导入两个jar包

创建配置文件

配置文件的名字必须是固定的

c3p0.properties 或者是 c3p0-config.xml

必须是这两个配置文件中的某一个

以c3p0为例讲解

配置文件需要放在sourceFolder文件夹下,或者src目录下

代码中写了参数的含义

<!-- 默认获取连接的方式 --><default-config><property name="driverClass">com.mysql.cj.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/electrochemistry?useSSL=true&amp;serverTimezone=GMT&amp;useUnicode=true&amp;characterEncoding=utf8</property><property name="user">root</property><property name="password">123456</property><!-- 连接池初始化连接的个数 --><property name="initialPoolSize">5</property><!-- 连接池最大连接的个数 --><property name="maxPoolSize">10</property><!-- 获取连接的最大时间限制 超时就会抛异常 --><property name="checkoutTimeout">3000</property></default-config>

Demo 中的代码

//创建数据库连接对象DataSource ds=new ComboPooledDataSource();System.out.println(ds);//获取连接Connection conn = ds.getConnection();System.out.println(conn);

释放连接

/*** 在使用数据库连接池之前conn.close() 表示关闭连接* 在数据库连接池中conn.close()表示释放连接,将连接返回到数据库连接池中*/conn.close();

在c3p0的配置文件中可以使用

下面这样的格式

在创建数据库连接对象的时候将name属性值作为参数传递

就可以获取下面xml(对应xml)中的数据库连接对象

获取的连接也是对应配置的

//创建数据库连接对象DataSource ds=new ComboPooledDataSource();

<named-config name="mysql"><property name="acquireIncrement">50</property><property name="initialPoolSize">100</property><property name="minPoolSize">50</property><property name="maxPoolSize">1000</property><!-- intergalactoApp adopts a different approach to configuring statement caching --><property name="maxStatements">0</property><property name="maxStatementsPerConnection">5</property></named-config>

德鲁伊数据库连接池的使用

使用步骤导入jar包创建配置文件加载配置文件创建数据库连接对象获取连接

导入jar包

配置文件

druid数据库连接池的配置文件名可以是任意的,但是必须是.properties后缀名

参数的意义和c3p0的含义是一样的

driverClassName=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/electrochemistry?serverTimezone=GMT%2B8username=rootpassword=123456initialSize=5maxActive=10maxWait=3000maxIdle=8minIdle=3

加载配置文件

import java.util.Properties;

这里的properties,可能会导错包,导错包会导致没有load()方法

这里的

import javax.sql.DataSource;

这个包也可能导错,请注意

import java.io.InputStream;import java.sql.Connection;import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid.pool.DruidDataSourceFactory;public class druidDemo {public static void main(String[] args) throws Exception {// TODO Auto-generated method stub//加载配置文件Properties pro =new Properties(); InputStream is=druidDemo.class.getClassLoader().getResourceAsStream("jdbc.properties");pro.load(is);//创建数据库连接对象DataSource ds = DruidDataSourceFactory.createDataSource(pro);System.out.println(ds);Connection conn = ds.getConnection();System.out.println(conn);}}

druid工具类的使用

上面讲的是druid的基本使用,下面将一下druid工具类的使用

导入jar包创建配置文件并配置

这两步是一样的

创建工具类,写方法

直接上代码

工具类的创建就是一个简单的封装

package Util;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid.pool.DruidDataSourceFactory;public class druidUtil {private static Properties pro=null;private static InputStream is=null;private static DataSource ds=null;static {pro=new Properties();is=druidUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");try {pro.load(is);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {ds=DruidDataSourceFactory.createDataSource(pro);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static Connection getConnection() throws SQLException {return ds.getConnection();}public static void close(Statement sta,Connection conn) {if(sta!=null) {try {sta.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void close(ResultSet rs,Statement sta,Connection conn) {if(rs!=null) {try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}close(sta, conn);}public static DataSource getDataSource() {return ds;}}

使用工具类

public static void main(String[] args) {// TODO Auto-generated method stubConnection connection=null;try {connection = druidUtil.getConnection();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(connection);try {connection.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}druidUtil.close(null, connection);System.out.println(connection);}

这篇博客就到这里了

未来的三篇博客

将介绍

连接数据库的参数是什么、有什么作用

连接数据库中url参数的作用,参数的含义

MyBatis框架连接数据库Spring框架 JDBCTemplate的使用

还不去点个赞嘛

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。