@Test
public void mapHandlerTest() throws SQLException {
QueryRunner qr=new QueryRunner(new ComboPooledDataSource("c3p0"));
String sql="select employee_id,first_name,salary from my_employees where manager_id=103";
Map map=qr.query(sql,new MapHandler());
Set<Map.Entry<Object,Object>> set = map.entrySet();
for (Map.Entry<Object, Object> entry : set) {
System.out.println(entry.getKey()+" : "+entry.getValue());
@Test
public void mapList() throws SQLException {
int i=0;
QueryRunner qr = new QueryRunner(new ComboPooledDataSource("c3p0"));
String sql="select employee_id ,first_name, manager_id from my_employees where manager_id=103";
List<Map<String,Object>> list=qr.query(sql,new MapListHandler());
for (Map<String, Object> map : list) {
System.out.println("第"+(i++)+"个结果");
Set<Map.Entry<String,Object>> set = map.entrySet();
for (Map.Entry<String, Object> entry : set) {
System.out.println(entry.getKey()+" : "+entry.getValue());
System.out.println();
QueryRunner类是DbUtils工具类里的核心类之一,提供了多种重载的query方法。在API里对此类的介绍如下:Executes SQL queries with pluggable strategies for handling ResultSets(执行Sql语句,使用可插拔式策略操作结果集)。QueryRunner(DataSource ds),其中的一个有参构造方法,不考虑事务问题时就可以用这个构造器直接获取数据库连接,参数是一个数据库连接对象。看一下QueryRunner类的源码
commons.dbutils.QueryRunner query方法中RequestSetHandler 参数对应的返回类型:
AbstractListHandler -- 返回多行List的抽象类
ArrayHandler -- 返回一行的Object[]
ArrayListHandler -- 返回List,每行是Object[]
BeanHandler -- 返回第一个Be...
使用QueryRunner 类来执行sql语句的查询与操作
该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。
主要有三个方法:
query()用于执行select
update()用于执行inset/update/delete
batch()批处理(不常用)
queryrunnet:提供了两个构造方法
默认的构造方法
需要一个 javax.sql.DataSource来作参数的构造方法。
BeanHandler:将结果集中的第一
使用JDBC技术是一件繁琐的事情,为了使数据库更加高效,有一种简化jdbc技术的操作--DBUtils。DbUtils(org.apache.commons.dbutils.DbUtils)是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。DbUtils类主要负责装载驱动、关闭连接的常规工作。
Qr...
它是由DBUtils包提供的一个工具类,需要引入 commons-dbutils 依赖。
它与JdbcTemplate功能类似,该类简单化了SQL查询,与ResultSetHandler协同工作将使编码量大为减少。
<!--配置QueryRunner:
QueryRunner是个单例对象,有多个dao在使都是同一个对象,有可能导致线程安全问题,
配置成多例对象, 保证每次使用这个对象,都是创建新的对象
<bean id="runn
QueryRunner 是什么
QueryRunner 是dbutils包下一个为了增强 JDBC 的类,简化了 JDBC 中数据操作,以及数据与对象之间的转化
使用之前需要先导jar包,jar包下载地址为:http://commons.apache.org/proper/commons-dbutils/
涉及到事务时创建QueryRunner对象时,不需要传入参数,但需要在方法里传入和其他层同一...
使用JDBC技术是一件繁琐的事情,为了使数据库更加高效,有一种简化jdbc技术的操作–DBUtils。DbUtils(org.apache.commons.dbutils.DbUtils)是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。DbUtils类主要负责装载驱动、关闭连接的常规工作。
QreryRunner类(org.apache.commons.dbutils.QueryRunner) 是Dbutils的核心类之一,它
查询改写,即 Query Rewrite,主要解决的问题是用户的搜索 Query 和 被搜索的文档 不显式匹配。
Query和Doc/Item有Semantic Gap,Query是用户端语言,Doc/Item是商户/平台端语言,风格和词汇都不一样。e.g. Query端是“通马桶”、“剪头”,Doc端是“管道疏通”、“理发”。
Semantic Match是一种解决方...
public interface AccountDao {
public int addAccount(Account account);
public int updateAccount(Account account);
publ...
1.QueryRunner的作用:
其实这个是dbutils中的一个方法。什么是dbutils?它的出现就是封装了jdbc的代码,开发dao层代码的简单框架,使sql语句的执行代码变得更加简洁。
2.使用步骤:
(1)导入commons-dbutils-1.7.jar包:https://pan.baidu.com/s/1A0Uhf0gg6666FTpnq-nd9g
(2)在JDBCUtil...
public class JdbcUtil { private static ComboPooledDataSource dataSource =new ComboPooledDataSource(); public static ComboPooledDataSource getDataSource() { return dataSource; } }
src目录下c3p0-config.x...
queryrunner requires a datasource to be invoked in this way, or a connection should be passed in