开源连接池技术
导入jar包c3p0-0.9.1.2.jar
导包
在(src)源码目录下新建c3p0-config.xml
c3p0-config.xml
注意名字必须是c3p0-config.xml而且必须在src目录下或者相似的资源文件目录下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///jt_db</property>
<property name="user">root</property>
<property name="password">123456</property>
</default-config>
</c3p0-config>
@Test
public void delete() {
// 删除dept表中的id为2的数据
// 1.注册驱动2.获取数据库连接
Connection conn = null;
PreparedStatement ps = null;
// c3p0连接池
ComboPooledDataSource pool = new ComboPooledDataSource();
// 设置数据库需要的参数
try {
conn = pool.getConnection();
String sql = "delete from dept where id = ?";
// 3.获取传输器
ps = conn.prepareStatement(sql);
// 设置参数
ps.setInt(1,2);
int rows = ps.executeUpdate();
System.out.println(rows + " be affected");
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(null, ps, conn);
}
}
package util;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 这个类用来完成JDBC工具类的开发
*/
public class JDBCUtils {
//提供静态的close方法,用来释放资源
public static void close(ResultSet rs,Statement st,Connection conn){
if(rs!=null)
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs=null;//手动置空,等待垃圾回收
}
}
if(st!=null)
{
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
st=null;
}
}
if(conn!=null)
{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs=null;
}
}
}
}