星空网 > 软件开发 > Java

dbutils基本使用

dbutils的查询,主要用到的是query方法,增加,修改和删除都是update方法,update方法就不讲了

dbutils基本使用

只要创建ResultSetHandler接口不同的实现类对象就可以得到想要的查询结果,该接口的实现类有

dbutils基本使用

接下来讲解一些经常用到的:

下面的代码都是要抛出异常的,为了看起来简洁,我在这里把异常去掉了

ArrayHandler类:把结果集的'第一行'记录封装成数组,
  测试代码:

dbutils基本使用dbutils基本使用
QueryRunner qr = new QueryRunner(dataSource);  String sql = "select * from user";  Object[] objArr = qr.query(sql, new ArrayHandler());}

View Code


ArrayListHandler类:把结果集的每一行封装到一个数组中,然后把这些数组放到一个集合中返回
  测试代码:

dbutils基本使用dbutils基本使用
QueryRunner qr = new QueryRunner(dataSource);  String sql = "select * from user";  List<Object[]> list = qr.query(sql, new ArrayListHandler());}

View Code


BeanHandler类:把结果集的'第一行'记录作为一个javaBean对象返回(前提:结果集的字段名(可以用取别名) 和 javaBean的属性名保持一致)
  测试代码:

dbutils基本使用dbutils基本使用
QueryRunner qr = new QueryRunner(dataSource);String sql = "select * from user";User user = qr.query(sql, new BeanHandler<User>(User.class));

View Code


BeanListHandler类:把结果集的每一行封装成一个javaBean对象,然后把这些对象放入到一个List集合中返回
  测试代码:

dbutils基本使用dbutils基本使用
QueryRunner qr = new QueryRunner();String sql = "select * from user";List<User> userList = qr.query(conn, sql, new BeanListHandler<User>(User.class));

View Code


ScalarHandler类:返回'结果集'中第一行的某个值, 具体视构造方法的参数而定, 返回值类型视表中字段的类型而定
有3个构造方法, 用于聚合查询比较好
new ScalarHandler(); 返回结果集中第一行第一列的值
new ScalarHandler(int columnIndex); 返回结果集中第一行第columnIndex列的值(列从1开始计算)
new ScalarHandler(String columnName); 返回结果集中第一行名字为columnName的值
  测试代码:

dbutils基本使用dbutils基本使用
QueryRunner qr = new QueryRunner();String sql = "select id, username, hobby as hob from user";Integer obj1 = qr.query(conn, sql, new ScalarHandler<Integer>()); //结果集中第一行第一列的值String obj2 = qr.query(conn, sql, new ScalarHandler<String>(2)); //结果集中第一行第2列的值String obj3 = qr.query(conn, sql, new ScalarHandler<String>("hob")) //结果集中第一行名字为hob

View Code


ColumnListHandler类:将结果集中某一列的数据存放到List中, 与上面ScalarHandler类似的有3个构造方法
  测试代码:

dbutils基本使用dbutils基本使用
QueryRunner qr = new QueryRunner();String sql = "select * from user";// List<Integer> idList = qr.query(conn, sql, new ColumnListHandler<Integer>());// List<String> idList = qr.query(conn, sql, new ColumnListHandler<String>("hobby"));List<String> list = qr.query(conn, sql, new ColumnListHandler<String>(4));

View Code


MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值
  测试代码:

dbutils基本使用dbutils基本使用
QueryRunner qr = new QueryRunner();String sql = "select * from user";Map<String, Object> map = qr.query(conn, sql, new MapHandler());

View Code


MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
  测试代码:

dbutils基本使用dbutils基本使用
QueryRunner qr = new QueryRunner();String sql = "select * from user";List<Map<String, Object>> listMap = qr.query(conn, sql, new MapListHandler());

View Code

我这里都是举例的不带参数的,如果有参数,在sql中参数用?表示,然后使用带参数的query方法按顺序依次把参数传入即可

有关连接数据库的,请参考我另一篇随笔:c3p0连接数据库的3种方式

 




原标题:dbutils基本使用

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

亚马逊VC、VE、Seller Central哪个收益更高?:https://www.ikjzd.com/articles/15479
亏损30W,亚马逊资深大卖得到这些实战经验:https://www.ikjzd.com/articles/1548
2019最新亚马逊Listing优化技巧汇总!:https://www.ikjzd.com/articles/15480
突发!洛杉矶东京和德国等地的货物将面临严重延误!:https://www.ikjzd.com/articles/15485
SHAREIT GROUP:https://www.ikjzd.com/articles/154852
小心新型骗局!亚马逊卖家的控诉,夺我商标占我Listing!:https://www.ikjzd.com/articles/15487
石象湖景区门票-石象湖景区门票优惠政策:https://www.vstour.cn/a/411243.html
北京到嵩山自驾游沿途景点 北京距离嵩山有多远:https://www.vstour.cn/a/411244.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流