druiddatasource 方法_druid(德鲁伊)连接池的DataSourceUtils的写法及原生写法

方法改进前:

@Test

public void test01() throws Exception{

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

//创建配置文件对象

Properties properties = new Properties();

properties.load(is);

//创建连接池对象

//druid 提供了一个工具类对象

DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);

//获取连接

Connection connection = dataSource.getConnection();

System.out.println(connection);

//打印连接池

System.out.println(dataSource);

//归还到连接池

connection.close();

}

写成工具类的写法:

import com.alibaba.druid.pool.DruidDataSourceFactory;

import com.alibaba.druid.support.jconsole.DruidSqlDetailFrame;

import javax.sql.DataSource;

import java.io.IOException;

import java.io.InputStream;

import java.sql.*;

import java.util.Properties;

//连接池的工具类

public class DataSourceUtils {

// 声明变量 static

public static DataSource dataSource;

// 初始化连接池(仅一次)

static {

// 加载 druid.properteis 使用类加载

System.out.println(DataSourceUtils.class.getClassLoader());

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

// 创建连接池对象 使用工具类

try {

// 创建配置文件对象

Properties properties = new Properties();

// 加载io流 key = value

properties.load(is);

// 使用第三方连接池 druid

dataSource = DruidDataSourceFactory.createDataSource(properties);

} catch (Exception e) {

e.printStackTrace();

}

}

// 提供获取连接池的方法

public static DataSource getDataSource() {

return dataSource;

}

// 提供获取连接的方法

public static Connection getConnection() throws SQLException {

return dataSource.getConnection();

}

// 提供关闭资源的方法【connection是归还到连接池】

// 提供关闭资源的方法 【方法重载】3 dql

public static void closeResource(ResultSet resultSet, Statement statement, Connection connection) {

// 关闭结果集

// ctrl+alt+m 将java语句抽取成方法

closeResultSet(resultSet);

// 关闭语句执行者

closeStatement(statement);

// 关闭连接

closeConnection(connection);

}

// 提供关闭资源的方法 【方法重载】 2 dml

public static void closeResource(Statement statement, Connection connection) {

// 关闭语句执行者

closeStatement(statement);

// 关闭连接

closeConnection(connection);

}

private static void closeConnection(Connection connection) {

if (connection != null) {

try {

connection.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

private static void closeStatement(Statement statement) {

if (statement != null) {

try {

statement.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

private static void closeResultSet(ResultSet resultSet) {

if (resultSet != null) {

try {

resultSet.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值