数据库连接池druid基本使用和druid工具类和druid工具类测试
数据库连接池druid基本使用
Druid:数据库连接池实现技术,有阿里巴巴提供的
步骤:
1.导入jar包 druid-1.0.9.jar
2.定义配置文件:是properties形式的,可以叫任意名称,可以放在任意目录下
3.加载配置文件,properties
4.获取数据库连接池对象:通过工厂来获取 DruidDataSourceFactory
5.获取连接:getConnection
package cn.itcust.datasource.druid;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;
public class DruidDemo {
/**
* druid演示
*/
public static void main(String[] args) throws Exception {
Properties pro = new Properties();
InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
Connection conn = ds.getConnection();
System.out.println(conn);
}
}
druid工具类
定义工具类
1.定义一个类JDBCUtils
2.提供静态代码块加载配置文件,初始化连接池对象
3.提供方法
获取连接方法:通过数据库连接池获取连接
释放资源
获取连接池的方法
package cn.itcust.Utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* Druid连接池的工具类
*/
public class DruidUtils {
//定义成员变量 DataSource
private static DataSource ds;
static {
try {
//加载配置文件
Properties pro = new Properties();
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//获取DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* 获取连接
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
/**
* 释放资源
*/
public static void close(Statement stmt, Connection conn) throws SQLException {
// if (stmt == null){
// stmt.close();
// }
// if (conn == null) {
// conn.close();
// }
close(null,stmt,conn);
}
/**
* 释放资源
*/
public static void close(ResultSet rs, Statement stmt, Connection conn) throws SQLException {
if (rs == null) {
rs.close();
}
if (stmt == null) {
stmt.close();
}
if (conn == null) {
conn.close();
}
}
/**
* 获取连接池对象
*/
public static DataSource getDs() {
return ds;
}
}
druid工具类测试
package cn.itcust.datasource.druid;
import cn.itcust.Utils.JDBCUtils;
import java.sql.*;
/**
* 使用新的工具类
*/
public class DruidDemo2 {
public static void main(String[] args) {
/**
* 完成添加操作:给account添加一条记录
*/
Connection conn = null;
PreparedStatement pstmt = null;
try {
//1.获取连接
conn = JDBCUtils.getConnection();
//2.定义sql
String sql = "insert into account values(null,?,?)";
//3.获取pstmt对象
pstmt = conn.prepareStatement(sql);
//4.给?赋值
pstmt.setString(1, "王五");
pstmt.setDouble(2, 5000);
//5.执行sql
int i = pstmt.executeUpdate();
System.out.println(i);
} catch (Exception e) {
e.printStackTrace();
} finally {
//6.释放资源
JDBCUtils.close(pstmt, conn);
}
}
}