🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 问题01:DBUtils的使用 ### 1. 概述 > Apache组织提供 > 实现了对JDBC的简单封装 ![](https://img.kancloud.cn/e0/c6/e0c6fc5621e33d0ba9f60fffae824b35_1066x342.png) * BeanHandler:将结果集中的**第一行**数据封装到一个对应的JavaBean实例中。 * BeanListHandler:将结果集中的**所有行**数据都封装到一个对应的JavaBean实例中,并存放到List里。 * ColumnListHandler:将**所有行**的**某列**属性的值封装到List集合中。 * ScalarHandler:将结果集中**某一行**的**某一列**数据存储成Object对象。 ### 2. jar包 ![](https://img.kancloud.cn/95/6c/956c2a0b795c82c9c2f395bad8c3907a_279x89.png) ### 3. 实现CRUD 1. 创建runner ``` QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource()); ``` 2. 执行单条查询 ``` XXX object = (XXX) runner.query(sql, new BeanHandler(XXX.class), Object[] params); ``` 3. 执行多条查询 ``` List<XXX> list = (List) runner.query(sql, new BeanListHandler(XXX.class), Object []params); ``` 4. 执行更新 ``` int num = runner.update(sql, Object[] params); ``` ## 问题02:JdbcTemplate的使用 ### 1. 概述 > Spring提供 > Spring 框架对 JDBC 进行封装 ### 2. jar包 ![](https://img.kancloud.cn/6e/4d/6e4de253d207e6b26b467f47d66a0a4b_279x161.png) ### 3. 实现CRUD 1. 创建template ``` private JdbcTemplate template = new JdbcTemplate(DruidUtil.getDs()); ``` 2. 执行单条查询 ``` XXX object = template.queryForObject(sql,new BeanPropertyRowMapper<XXX>(XXX.class), Object... params); ``` 3. 执行多条查询 ``` List<XXX> list = (List<XXX>) template.query(sql,new BeanPropertyRowMapper<XXX>(XXX.class), Object... params); ``` 4. 执行更新 ``` int num = template.update(sql, Object... params); ```