关于QueryRunner数据查询以及常用方法

QueryRunner数据查询操作
调用QueryRunner类方法query(Connection con,String sql,ResultSetHandler r, Object.params)
ResultSetHandler r 结果集的处理方式,传递ResultSetHandler接口实现类
Object.params SQL语句中的?占位符
注意: query方法返回值,返回的是T 泛型, 具体返回值类型,跟随结果集处理方式变化

第一种处理方法,MapListHandler将结果集每一行存储到Map集合,键:列名,值:数据 Map集合过多,存储到List集合
public static void mapListHandler()throws SQLException{
   QueryRunner qr = new QueryRunner();
   String sql = "SELECT  * FROM sort";
   //调用方法query,传递结果集实现类MapListHandler
   //返回值List集合, 存储的是Map集合
   List<Map<String,Object>> list = qr.query(con, sql, new MapListHandler());
   //遍历集合list
   for( Map<String,Object> map : list ){
     for(String key : map.keySet()){
       System.out.print(key+"..."+map.get(key));
     }
     System.out.println();
   } 
 }

第二种处理方法,MapHandler将结果集第一行数据,封装到Map集合中 Map<键,值> 键:列名  值:这列的数据
public static void mapHandler()throws SQLException{
   QueryRunner qr = new QueryRunner();
   String sql = "SELECT  * FROM sort";
   //调用方法query,传递结果集实现类MapHandler
   //返回值: Map集合,Map接口实现类, 泛型
   Map<String,Object> map = qr.query(con, sql, new MapHandler());
   //遍历Map集合
   for(String key : map.keySet()){
     System.out.println(key+".."+map.get(key));
   }
 }

第三种处理方法,ScalarHandler对于查询后,只有1个结果
public static void scalarHandler()throws SQLException{
   QueryRunner qr = new QueryRunner();
   String sql = "SELECT COUNT(*) FROM sort";
   //调用方法query,传递结果集处理实现类ScalarHandler
   Long temp = (Long)runner.query(sql, new ScalarHandler());
   System.out.println(temp );
 }

第四种处理方法,ColumnListHandler 结果集,指定列的数据,存储到List集合 List<Object> 每个列数据类型不同
public static void columnListHandler()throws SQLException{
   QueryRunner qr = new QueryRunner();
   String sql = "SELECT * FROM sort ";    
   //调用方法 query,传递结果集实现类ColumnListHandler
   //实现类构造方法中,使用字符串的列名
   List<Object> list = qr.query(con, sql, new ColumnListHandler<Object>("sname"));
   for(Object obj : list){
     System.out.println(obj);
   }
 }

第五种处理方法,BeanListHandler结果集每一行数据,封装JavaBean对象多个JavaBean对象,存储到List集合
public static void beanListHander()throws SQLException{
   QueryRunner qr = new QueryRunner();
   String sql = "SELECT * FROM sort ";
   //调用方法query,传递结果集处理实现类BeanListHandler
   List<Sort> list = qr.query(con, sql, new BeanListHandler<Sort>(Sort.class));
   for(Sort s : list){
     System.out.println(s);
   }
 }

第六种处理方法,BeanHandler将结果集的第一行数据,封装成JavaBean对象注意: 被封装成数据到JavaBean对象, Sort类必须有空参数构造
public static void beanHandler()throws SQLException{
   QueryRunner qr = new QueryRunner();
   String sql = "SELECT * FROM sort ";
   //调用方法,传递结果集实现类BeanHandler
   //BeanHandler(Class<T> type) 
   Sort s = qr.query(con, sql, new BeanHandler<Sort>(Sort.class));
   System.out.println(s);
 }

第七种处理方法,ArrayListHandler将结果集的每一行,封装到对象数组中, 出现很多对象数组对象数组存储到List集合
public static void arrayListHandler()throws SQLException{
   QueryRunner qr = new QueryRunner();
   String sql = "SELECT * FROM sort";    
   //调用query方法,结果集处理的参数上,传递实现类ArrayListHandler
   //方法返回值 每行是一个对象数组,存储到List
   List<Object[]> result=  qr.query(con, sql, new ArrayListHandler());
   //集合的遍历
   for( Object[] objs  : result){
     //遍历对象数组
     for(Object obj : objs){
       System.out.print(obj+"  ");
     }
     System.out.println();
   }
 }

第八种处理方法,ArrayHandler将结果集的第一行存储到对象数组中  Object[]
public static void arrayHandler()throws SQLException{
   QueryRunner qr = new QueryRunner();
   String sql = "SELECT * FROM sort";
   //调用方法query执行查询,传递连接对象,SQL语句,结果集处理方式的实现类
   //返回对象数组
   Object[] result = qr.query(con, sql, new ArrayHandler());
   for(Object obj : result){
     System.out.print(obj);
   }
 }

转载于:https://www.cnblogs.com/ly133333333333333/p/9869346.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js的校验

1、判断是否为数字&#xff08;整数、小数&#xff09; //使用isNaN()函数 //isNaN()的缺点就在于 null、空格以及空串会被按照0来处理 //isNaN: Not a Number function isRealNum(val){// isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除if(val "" || v…

oracle存储过程的写法

create or replace procedure 要创建的存储过程名称(入参a in varchar2, 出参b out varchar2) is变量c varchar2(2000);变量d number(10);异常变量e exception;beginif 入参a is null thenraise 异常e;end if;//跳到异常处理for cc in (select语句) LOOP//执行sqlv_sql:sel…

杂项:WCF

ylbtech-杂项&#xff1a;WCFWindows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架&#xff0c;可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting&#xff0c;WebService&#xff0c;Socket的机制&#xff0c;并融合…

js定时器的写法

js 定时器有以下两个方法&#xff1a; setInterval() &#xff1a;按照指定的周期&#xff08;以毫秒计&#xff09;来调用函数或计算表达式。方法会不停地调用函数&#xff0c;直到 clearInterval() 被调用或窗口被关闭。 setTimeout() &#xff1a;在指定的毫秒数后调用函数…

Oracle特殊恢复原理与实战(DSI系列)

1、深入浅出Oracle(DSI系列Ⅰ) 2、Oracle特殊恢复原理与实战&#xff08;DSI系列Ⅱ&#xff09; 3、Oracle SQL Tuning&#xff08;DSI系列Ⅲ&#xff09;即将开设 4、Oracle DB Performance Diagnostics&#xff08;DSI系列Ⅳ&#xff09;2018年内将开设 5、Oracle DSI核心揭密…

jSignature开发实例

插件描述&#xff1a;jQuery手写签名插件jSignature &#xff0c;实现H5APP、网页 手写签名涂鸦 保存图片 代码实例 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP index.jsp starti…

react todolist代码优化

Todolist.js import React, { Component,Fragment } from react; import TodoItem from ./TodoItem; import ./style.css; class Todolist extends Component {constructor(props) { //最优先执行的函数super(props);this.state{inputValue:,list:[]}this.handleinputChangethi…

json、xml

json&#xff1a;(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。简单地说&#xff0c;JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串&#xff0c;然后就可以在函数之间轻松地传递这个字符串&#xff0c;或者在异步应用程序中将字符串从 …

Math.round(),Math.ceil(),Math.floor()的区别

round() 方法可把一个数字舍入为最接近的整数。 就是基本的四舍五入 document.write(Math.round(0.49)) 结果为&#xff1a;0document.write(Math.round(0.60)) 结果为&#xff1a;1document.write(Math.round(-5.1)) 结果为&#xff1a;-5document.write(Math.round(-5.6)) 结…

modifying的博客

https://www.cnblogs.com/JackLi07/转载于:https://www.cnblogs.com/wyh-blog/p/9882283.html

java生成随机数的两种方式

一、java.lang.Math.Random; Math.Random()函数能够返回带正号的double值&#xff0c;该值大于等于0.0且小于1.0&#xff0c;即取值范围是[0.0,1.0) //取1~10的随机数 Math.floor(Math.random()*101) 产生的是double随机数列。 ——————————–分割线————————…

TP3.2.x判断手机端访问并设置默认访问模块的方法 - ThinkPHP框架

手机端访问时调用Wap手机模块&#xff0c;实现在手机端访问时展示出手机网站&#xff0c;无需跳转域名首先我们在./Application/Common/Conf/ 目录下建立两个公共配置文件&#xff1a;config.php 和config_wap.phpconfig.php 中&#xff1a; return array( DEFAULT_MODULE&g…

request获取url的参数编码问题

1、设为utf-8编码 request.getParameter("Params")).getBytes("iso-8859-1"), "utf-8" ) 2、防止参数为null的情况&#xff0c; str null ? "" : str; 3、编解码问题 https://blog.csdn.net/farxix/article/details/78055469

python中前后端通信方法Ajax和ORM映射(form表单提交)

后端从数据库获取数据给到前端&#xff1a; 第一种方式&#xff1a; admin.py文件代码&#xff1a; admin.route(/showList) def show():# 获取数据库所有文章数据&#xff0c;得到一个个对象resArticle.query.all()dicts[]# 将每一个对象转成字典并加入一个列表&#xff0c;再…

java异常代码分析

觉得自己是一个Java专家吗&#xff1f;是否肯定自己已经全面掌握了Java的异常处理机制&#xff1f;在下面这段代码中&#xff0c;你能够迅速找出异常处理的六个问题吗&#xff1f; 1 OutputStreamWriter out ... 2 java.sql.Connection conn ... 3 try { // ⑸ 4  Statement…

NetworkManager

NetworkManager NetworkManager是一个组件,用来管理网络多人游戏的状态。 NetworkManager所具备的属性包括如下&#xff1a; 游戏状态管理派生管理场景管理Debugging信息比赛选择&#xff08;Matchmaker&#xff09;用户自定义使用NetworkManager NetworkManager可以作为核心控…

C#知识点总结系列:3、C#中Delegate和Event

一、Delegate委托可以理解为一个方法签名。 可以将方法作为另外一个方法的参数带入其中进行运算。在C#中我们有三种方式去创建委托&#xff0c;分别如下&#xff1a; public delegate void Print(string str);static void delegatemethod(string str){Console.WriteLine(str);}…

js获得7天后的日期时间

思路&#xff1a;当前日期天数7 直接上代码&#xff1a; function getSpecialTime() {var currentDate;var arry currentDate.split("-");var year parseInt(arry[0],10);var month parseInt(arry[1],10);var day parseInt(arry[2],10); //月份的方法&#xff…

python的2种字符串格式化输出

字符串格式化代码&#xff08;typecode&#xff09; 法一&#xff1a; %格式使用下面的格式 %[(name)] [flags] [width][.precision] typecode (name)输出字典的value使用&#xff0c;这里的name是字典的key&#xff08;实际指定时&#xff0c;必须有外面的圆括号&#xff09; …

JS弹出DIV并使整个页面背景变暗功能的实现代码

1.首先写一个遮罩层div&#xff0c;然后再写一个弹窗的div <!-- 遮罩层 --> <div id"cover" style"background: #000; position: absolute; left: 0px; top: 0px; width: 100%; filter: alpha(opacity30); opacity: 0.3; display: none; z-index: 2 &…