Connection pool DBCP, efficient database connection

 使用DBCP实现数据库的连接池

Connection pool configuration, custom class basic four complete, other configurations, custom

Four basic

  • setDriverClassName database driver name
  • setUrl database address
  • setUsername Username
  • setPassword password

step

  • Introducing commons-pool-1.5.6.jar and commons-dbcp-1.4.jar and commons-dbutils-1.6.jar and mysql-connector-java-5.1.37-bin.jar, connection pool jar package, a good definition of class BasicDataSource
  • Written tools
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
public class JDBCUtils{
private static BasicDataSource datasource=new BasicDataSource();//创建出BasicDataSource类对象
//静态代码块,对象BasicDataSource对象中的配置,自定义
static{
//这四句必须有
datasource.setDriverClassName("com.mysql.jdbc.Driver");
datasource.setUrl("jdbc:mysql://localhost:3306/mybase");//这几句代码看不懂的建议去看JDBC技术连接数据库那一篇博客,有解析
datasource.setUsername("root");
datasource.setPassword("123");
//对象连接池中的连接数量配置,可选的
datasource.setInitialSize(10);//初始化的连接数
datasource.setMaxActive(8);//最大连接数量
datasource.setMaxIdle(5);//最大空闲数
datasource.setMinIdle(1);//最小空闲数
}
//定义静态方法,返回BasicDataSource类的对象
public static DataSource getDataSource(){  return datasource;  }

}
  

Written test tools

DataSource interface provides a data source, QueryRunner class constructor method receives DataSource interface implementation class, call update, query later, without passing their connection object Connection

import org.apache.commons.dbutils.QueryRunner;
import cn.itcast.jdbcutils.JDBCUtils;
public class QueryRunnerDemo{
public static void main(string[] args){
insert();
select();
}
//定义两个方法,实现数据表的添加,数据表的查询
//QueryRunner类对象,写在类成员位置
private static QueryRunner qr=new QueryRunner(JDBCUtils.getDataSource());
//数据表添加数据
public static void insert{
String sql="INSERT INTO sort (sname,sprice,sdesc) VALUES(?,?,?)";
Object[] params={"水果",100,"滞销"};
try{
int row=qr.update(sql,params);
System.out.println(row);
}
catch(SQLException ex){
//System.out.println(ex);提示错误信息,给程序员看的
throw new RuntimeException("数据添加失败");
}
}
//数据表查询
public static void select(){
String sql="SELECT * FROM sort";
try{
List<Object[]> list=qr.query(sql,new ArraylistHandler());//new ArraylistHandler()是结果集的一种处理方法,这个的详细解释在DBUtils连接数据库里有,建议去看看
for(Object[] objs:list){
for(Object obj:objs){
System.out.print(obj+"\t");
}
System.out.println();
}
}catch(SQLException ex){throw new RuntimeException("数据查询失败");}

}
}
Released eight original articles · won praise 2 · Views 438

Guess you like

Origin blog.csdn.net/weixin_45704114/article/details/104283775