DBCP连接池
DBCP是一个开源的连接池,是Apache Common成员之一,在企业开发中比较常见,tomcat内置的连接池。
一、导入jar包
二、配置文件
1)配置文件名称:*.properties
2)配置文件位置:任意,建议src(classpath/类路径)
3)配置文件内容:properties不能编写中文,不支持在STS中修改,必须使用记事本修改内容,否则中文注释乱码
三、编写工具类
package cn.itheima.jdbc.utils;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
/*编写工具类
* */
public class DBCPUtils {
private static DataSource dataSource;
static{
try {
//1.加载properties文件输入流
InputStream is = DBCPUtils.class.getClassLoader().getSystemResourceAsStream("db.properties");
//2.加载输入流
Properties props = new Properties();
props.load(is);
//3.创建数据源
dataSource = BasicDataSourceFactory.createDataSource(props);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static DataSource getDataSource(){
return dataSource;
}
public static Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
四、编写测试类
package Test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import org.junit.Test;
import cn.itheima.jdbc.utils.DBCPUtils;
public class TestDBCP {
@Test
public void testUpdateUserById(){
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBCPUtils.getConnection();
String sql = "update tb1_user set upassword=? where uid=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,"啦啦啦");
pstmt.setInt(2,7);
int rows = pstmt.executeUpdate();
if(rows>0){
System.out.println("更新成功!");
}else{
System.out.println("更新失败!");
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}