**
配置文件
**
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///student
username=root
password=9672005
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000
配置工具类DruidDataUtils
**package cn.rong.util;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DruidDataUtils {
//创建数据源
private static DataSource ds = null;
static {
//加载配置文件
Properties properties = new Properties();
try {
properties.load(DruidDataUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//通过工厂类得到数据源对象
ds = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
//得到连接对象
public static Connection getConnection(){
Connection connection = null;
try {
connection = ds.getConnection();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return connection;
}
//归还连接对象到连接池中
public static void close(Connection connection){
if(connection!=null) {
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
public static void close(Statement statement , Connection connection){
if(statement!=null) {
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(connection!=null) {
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
public static void close(ResultSet resultSet , Statement statement,Connection connection){
if(resultSet!=null) {
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
close(statement,connection);
}
//得到连接池对象
public static DataSource getDs(){
if (ds != null){
return ds;
}
System.out.println("配置路径不对");
return null;
}
}
**
那么我们是如何得到这个数据源对象的呢?
private static DataSource ds = null;
//通过工厂类得到数据源对象
ds = DruidDataSourceFactory.createDataSource(properties);
查看工厂类的源代码,他调用了 createDataSource方法,返回一个DateSource类型
public static DataSource createDataSource(Properties properties) throws Exception {
return createDataSource((Map)properties);
}
然后查看该方法:在该方法中 返回的是一个DruidDataSource 类型 但是她符合DataSource类型, 并且 调用了 config方法,
public static DataSource createDataSource(Map properties) throws Exception {
DruidDataSource dataSource = new DruidDataSource();
config(dataSource, properties);
return dataSource;
}
查看config方法:
public static void config(DruidDataSource dataSource, Map properties) throws SQLException {
String value = null;
value

本文介绍了如何配置和使用Druid数据源,通过分析DruidDataUtils工具类和DruidDataSource工厂类的源码,揭示了数据源对象的创建过程。内容包括配置文件的设置,以及DruidDataSource如何根据配置信息初始化。在DAO层,利用JdbcTemplate进行数据库CRUD操作。最后探讨了DataSource接口与DruidDataSource的关系。
最低0.47元/天 解锁文章
2127

被折叠的 条评论
为什么被折叠?



