连接池技术概念和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");
        }
    }



posted @ 2020-08-05 22:10  挚终  阅读(189)  评论(0)    收藏  举报