码迷,mamicode.com
首页 > 其他好文 > 详细

druid(德鲁伊)连接池的DataSourceUtils的写法及原生写法

时间:2018-10-10 23:55:50      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:dml   inpu   source   语句   result   value   actor   private   alt+   

方法改进前:
@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();
}
}
}
}

druid(德鲁伊)连接池的DataSourceUtils的写法及原生写法

标签:dml   inpu   source   语句   result   value   actor   private   alt+   

原文地址:https://www.cnblogs.com/otways/p/9769271.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!