使用dbcp连接池,进行数据库的CRUD,涉及jar包:commons-dbcp2-2.8.0.jar(连接池包)、commons-pool2-2.9.0.jar(dbcp依赖该包)、commons-logging-1.2.jar(接口日志包)、mysql-connector-java-5.1.37-bin.jar(数据库连接驱动)、commons-dbutils-1.7.jar(基本CRUD操作)
DbcpUtils数据库连接池配置:
package learn.javase.dbcppool;
import org.apache.commons.dbcp2.BasicDataSource;
/**
* 利用DBCP链接数据库
* @author Jole
*
*/
public class DbcpUtils {
private static BasicDataSource dataSource = new BasicDataSource();
static {
//必配参数
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("11111");
//可配参数
dataSource.setInitialSize(10);
dataSource.setMaxIdle(8);
dataSource.setMinIdle(2);
}
public static BasicDataSource getConnecton() {
return dataSource;
}
}
利用DbcpUtils进行数据库的CRUD操作:
package learn.javase.dbcppool;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
/**
* 利用DBCP数据库连接池增加、查询
* @author Jole
*
*/
public class DbcpUtilsDemo {
private static QueryRunner qr = new QueryRunner(DbcpUtils.getConnecton());
public static void main(String[] args) {
// TODO Auto-generated method stub
// insertData();
findData();
}
public static void insertData() {
String sql = "insert into my_user(u_id,u_name,u_age) values(?,?,?)";
Object[] params = {"777777","dbcpUTils",30};
try {
int num = qr.update(sql, params);
System.out.println(num);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void findData() {
String sql = "select * from my_user";
try {
List<List<Object[]>> objs = qr.execute(sql, new ArrayListHandler());
for(List<Object[]> obj : objs ) {
for(Object ob : obj) {
System.out.println(ob);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
除了DBCP数据库连接池外,还有目前比较常用的c3p0、Druid等数据库链接池。
评论 (0)