编写连接池工具类JDBCDruidUtils
1.定义连接池类并编写静态代码块
private static DataSource ds; //定义数据池
static {
try {
//1.加载配置文件 建立properties集合通过类加载器加载配置文件
Properties pro = new Properties();
pro.load(JDBCDruidUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//2.利用Druid的数据池工厂 获取DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
2.编写从连接池获取连接的方法
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
3.编写归还连接的close方法
两个close的重载用于对结果集进行处理的 ResultSet
public static void close(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();
}
}
}
public static void close(ResultSet rs,Statement stmt, Connection conn){
if (rs!= null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
编写获取连接池的方法
public static DataSource getDataSource(){ //获得连接池对象
return ds;
JDBCDruidUtils工具类的所有代码
package util;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import com.alibaba.druid.pool.DruidDataSourceFactory;;
import javax.sql.DataSource;
public class JDBCDruidUtils {
private static DataSource ds; //定义数据池
static {
try {
//1.加载配置文件 通过类加载器加载配置文件
Properties pro = new Properties();
pro.load(JDBCDruidUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//2.获取DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
public static void close(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();
}
}
}
public static void close(ResultSet rs,Statement stmt, Connection conn){
if (rs!= null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static DataSource getDataSource(){ //获得连接池对象
return ds;
}
利用JDBCDruidUtils工具类来对数据库数据进行添加操作
package druid;
import util.JDBCDruidUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DruidDemo {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt=null;
try {
//1.利用工具类 获得连接
conn = JDBCDruidUtils.getConnection();
//2.定义sql
String sql = "insert into id values(?,?,?)";
//3.获得执行sql的对象
pstmt = conn.prepareStatement(sql);
//3.赋值?
pstmt.setInt(1,6);
pstmt.setString(2,"都是");
pstmt.setInt(3,4600);
//4.执行sql
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
//利用工具类归还连接池
JDBCDruidUtils.close(pstmt,conn);
}
}
}