连接池技术概念和DBUtils使用步骤
今天在公司是接触连接池技术和DBUtils,连接池主要是之前连数据库都是连一次,创建一个连接对象,效率低繁琐。用连接池就是程序启动时,就创建一些连接对象。DBUtils是封装JDBC的代码,简化dao层操作,快捷方便访问一些数据库操作。使用步骤(1)需要导入的jar包:①MySql驱动 ②Druid包 ③DbUtils包(mchange,commons)
(2)添加Druid配置文件
(3)可以自行添加一个JDBCUtils工具类:用来获取c3p0连接池对象
有点复杂,刚上手,挺难理解的,概念第一次接触,要多理解,实践
//自定义Handle实现类
public static class StudentHandle implements ResultSetHandler<List<Student>> {
@Override
public List<Student> handle(ResultSet resultSet) throws SQLException {
return null;
}
public static void main(String[] args) throws Exception {
//创建属性类
Properties properties = new Properties();
//加载属性文件、一定要加模块名
properties.load(new FileReader("D:\\Users\\asus\\IdeaProjects\\javaee\\dbtuildemo\\config.propertie"));
//固定获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(properties);
//获取连接对象
Connection connection = ds.getConnection();
// System.out.println(ds.getConnection());
// System.out.println(ds.getConnection());
QueryRunner query = new QueryRunner(ds);
//泛型和反射 BeanHandler将查询结果的第一行数据,封装到user对象 BeanListHandler将查询结果的每一行封装到user对象,然后再存入List集合
// List<Student> query1 = query.query("select * from student", new BeanListHandler<Student>(Student.class));
List<Classes> query1 = query.query("select * from classes", new BeanListHandler<Classes>(Classes.class));
for (Classes info : query1) {
System.out.println(info);
}
//// 获取连接对象
// Connection conn= ds.getConnection();
//// 设置不自动提交事务
// conn.setAutoCommit(false);
// try {
// query.update(conn,"insert into student(id,name,pwd,classid) values(?,?,?,?)", 111,"李嘉欣","123456",3);
// query.update(conn,"insert into student(id,name,pwd,classid) values(?,?,?,?)", 111,"李嘉欣","123456",3);
// conn.commit();
// }catch (Exception e){
// 一起回滚,失败
// conn.rollback();
// }
// query.update("insert into student(name,pwd,classid) values(?,?,?)","悠悠","123123",3);
// query.update("update student set name=?,pwd=?,classid=? where id=?","有有","456456",3,1006);
// query.update("delete from student where id=?","1006");
System.out.println("over");
}
}

浙公网安备 33010602011771号