druild的使用和c3p0类似,druild的配置文件需要自己读取配置参数,c3p0会自动扫描配置文件且配置文件名称固定。
Druild使用的jar:commons-dbutils-1.4.jar
由于druild和上一篇c3p0的使用步骤基本一致,所以以下直接上代码:
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class DruidUtils {
private DruidUtils(){}
private static DataSource ds = null;
static {
try {
Properties p = new Properties();
p.load(new FileReader("src/druid.properties"));
ds = DruidDataSourceFactory.createDataSource(p);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
return ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void closeResource(ResultSet rs, PreparedStatement ps, Connection conn){
try {
if(rs != null){
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(ps != null){
ps.close();
ps = null;
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(conn != null){
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void closeResource(PreparedStatement ps,Connection conn){
try {
if(ps != null){
ps.close();
ps = null;
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(conn != null){
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
调用工具类:
Connection conn = null;
PreparedStatement ps = null;
try {
conn = DruidUtils.getConnection();
ps = conn.prepareStatement("update users set name = ? where id = ?");
ps.setString(1,"您好");
ps.setString(2,"22222222222");
if(ps.executeUpdate()>0){
System.out.println("执行成功");
}else{
System.out.println("执行失败");
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
DruidUtils.closeResource(ps,conn);
}