package com.lin.utils;
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 JdbcUtils {
private static DataSource ds;
private Connection conn=null;
// 提供静态代码块
static {
try {
// 创建属性列表
Properties prop = new Properties();
InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties");
prop.load(inputStream);
// 使用DruidDataSourceFactory获取数据源
// public static DataSource createDataSource(Propties prop)
ds=DruidDataSourceFactory.createDataSource(prop);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 定义通过数据源(底层连接池)获取数据库的连接对象
public static Connection getConnection() {
try {
return ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
// 获取数据源
public static DataSource getDataSource() {
return ds;
}
// 释放系统资源
public static void close(ResultSet rs,Statement stmt,Connection conn) {
try {
if(rs!=null) {
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(stmt!=null) {
stmt.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(conn!=null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(Statement stmt,Connection conn) {
try {
if(stmt!=null) {
stmt.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(conn!=null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException {
// 测试
DataSource ds=JdbcUtils.getDataSource();
Connection conn=ds.getConnection();
System.out.println(conn);
}
}
10-09
544
05-11
220
11-06
123