1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Druid:数据库连接池实现技术 由阿里巴巴提供的

Druid:数据库连接池实现技术 由阿里巴巴提供的

时间:2019-09-01 11:10:32

相关推荐

Druid:数据库连接池实现技术 由阿里巴巴提供的

Druid:数据库连接池实现技术,由阿里巴巴提供的

1.步骤:

1.导入jar包 druid-1.0.9.jar

2.定义配置文件:

* 是properties形式的

* 可以叫任意名称,可以放在任意目录下

3.加载配置文件。Properties

4.获取数据库连接池对象:通过工厂来来获取DruidDataSourceFactory

5.获取连接:getConnection

* 代码:

//3.加载配置文件

Properties pro = new Properties();

InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");

pro.load(is);

//4.获取连接池对象

DataSource ds = DruidDataSourceFactory.createDataSource(pro);

//5.获取连接

Connection conn = ds.getConnection();

2.定义工具类

1.定义一个类 JDBCUtils

2.提供静态代码块加载配置文件,初始化连接池对象

3.提供方法

1.获取连接方法:通过数据库连接池获取连接

2.释放资源

3.获取连接池的方法

package cn.itcast.util;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;import java.io.*;import .URL;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Objects;import java.util.Properties;/*** @author KuKaFei.Hai* @date /5/9 : 17:11*/public class JDBCDruid {//定义一个成员变量/*** 定义一个连接池变量*/private static DataSource ds;static {//加载配置文件try {//生成一个配置文件对象,这个是因为,Druid中的工厂方法,需要传一个配置文件对象Properties pro = new Properties();//加载配置文件//InputStream rs = JDBCDruid.class.getClassLoader().getResourceAsStream("druid.properties");// System.out.println(rs);pro.load(Objects.requireNonNull(JDBCDruid.class.getClassLoader().getResourceAsStream("druid.properties")));//pro.load(rs);//通过连接池工厂,创建连接池ds = DruidDataSourceFactory.createDataSource(pro);} catch (Exception e) {e.printStackTrace();}}/*** 通过连接池,获取conn 对象* @return 返回一个 Connection对象* @throws SQLException 存在异常*/public static Connection getConnectionByDruid() throws SQLException {return ds.getConnection();}/*** 获取连接池* @return 返回一个连接池对象*/public static DataSource getDataSource(){return ds;}/*** 关闭 非查询连接* @param stmt Statement* @param conn Connection*/public static void closeAll(Statement stmt,Connection conn){if(stmt!=null){try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if(conn!=null){try {conn.close(); // 这里不是关闭连接,而是归还到连接池中} catch (SQLException e) {e.printStackTrace();}}}/*** 关闭 查询连接* @param rs ResultSet* @param stmt Statement* @param conn Connection*/public static void closeAll(ResultSet rs,Statement stmt,Connection conn){if(rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}closeAll(stmt,conn);}}

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