数据库链接池的使用,一方面解决了数据库访问过多时造成数据库承受的压力,另一方面也简化了数据查询,今天就

DBUtils包所提供的QueryRunner类(org.apache.commons.dbutils.QueryRunner)作出说明:

  • 简化SQL查询

  • 与ResultSetHandler协同工作将使编码量大为减少。

  • 常见方法
  1. query(String sql, Object[] params, ResultSetHandler rsh); query(String sql, Object params, ResultSetHandler rsh):方法本身不提供数据库连接,执行选择查询,在查询中,对象阵列的值被用来作为查询的置换参数。

  2. update(String sql, Object params):update(String sql, Object params[]):执行插入、更新或删除(DML)操作。
  3. query(String sql, ResultSetHandler rsh):执行无需参数的选择查询。

   统一说明,Object[] params接受的是一个参数数组,Object params接收的是单个参数

  • 先看常见工具类的编写:----------------这里就c3p0数据库连接池查询作出例子
public class JdbcUtils {

    private static DataSource ds;
static{
ds = new ComboPooledDataSource();
} public static DataSource getDataSource(){
return ds;
} }
  • 就两个参数查询作为参考:
  • 补充:
  1. 实体Users-------id--- username-----  password(三个封装对象)
  2. 实体QueryResult-------list集合------totalrecord整型
  3. 目标====从数据库中获得所有的user信息,totalrecord是总记录数记录user的总数
//获取到页面数据和页面大小
public QueryResult pageQuery(int startindex,int pagesize){ try {
QueryRunner runner=new QueryRunner(JdbcUtils.getDataSource());
QueryResult qr = new QueryResult();
String sql="select * from pagination limit ?,?";
Object params[]={startindex,pagesize};
List list= (List) runner.query(sql, params, new BeanListHandler(Users.class));
qr.setList(list);
sql = "select count(*) from pagination";
int totalrecord= 0;
runner.update(sql, params)
totalrecord= ((Long) runner.query(sql, new ScalarHandler())).intValue();
qr.setTotalrecord(totalrecord);
return qr;
} catch (Exception e) {
throw new RuntimeException(e);
}
}

代码分析:

List list=    (List) runner.query(sql, params, new BeanListHandler(Users.class));
params是一个参数数组,里面是数据库查询需要的两个参数
new BeanListHandler(Users.class)得到list集合 同时将数组封装到users这个实体中,简化操作油然而现
 totalrecord= ((Long) runner.query(sql, new ScalarHandler())).intValue();

这个是无需参数的查询,得带一个值,那就是数据库总共多条记录

关键:((Long) runner.query(sql, new ScalarHandler())).intValue()

          runner.query(sql, new ScalarHandler())得到的值并不能直接强转为integer类型,但是接受端参数是整数类型,因此先将值转为long,然后整体调用intValue()方法得到整型

ps:今晚就到这,后续继续学习新的方法。

QueryRunner--常见方法的更多相关文章

  1. C#图片处理常见方法性能比较

    C#图片处理常见方法性能比较 来自:http://www.cnblogs.com/sndnnlfhvk/archive/2012/02/27/2370643.html   在.NET编程中,由于GDI ...

  2. window对象中的常见方法

    <body><!-- window对象中的常见方法--><script type="text/javascript"> var timeid; ...

  3. python socket 常见方法及 简单服务/客户端

    socket 常见方法: 补充说明:what is file descriptor? 文件描述符是什么? 参考(http://stackoverflow.com/questions/8191905/w ...

  4. VBS操作Excel常见方法

    VBS操作Excel常见方法 作者: 字体:[增加 减小] 类型:转载 时间:2009-11-13我要评论 VBS控制Excel常见方法,需要的朋友可以参考下. dim oExcel,oWb,oShe ...

  5. UIPickerView常见属性、常见方法(包括代理方法和数据源方法)的一些说明

    一.UIPickerView 1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id< ...

  6. jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)

    在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. [WebMethod] public static string SayHe ...

  7. AJAX跨域的常见方法

    由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问.比如说你的网站域名是aaa.com,想要通过AJAX请求 ...

  8. Java中字符串的一些常见方法

    1.Java中字符串的一些常见方法 /** * */ package com.you.model; /** * @author Administrator * @date 2014-02-24 */ ...

  9. openlayers3 基础(常见方法,类及实现)

    ol3接口大全1.ol.Map类:(地图容器类) 实现: ol.Map(参数) 参数说明:1.1 target,说明地图所在的html元素. 如果没有指定,必须调用ol.Map类的setTarget( ...

  10. 53.CSS---CSS水平垂直居中常见方法总结

    CSS水平垂直居中常见方法总结 1.元素水平居中 当然最好使的是: margin: 0 auto; 居中不好使的原因: 1.元素没有设置宽度,没有宽度怎么居中嘛! 2.设置了宽度依然不好使,你设置的是 ...

随机推荐

  1. [活动] 【奖品撩人】部落守卫者集结令·这一回同程SRC的安全由“我”守卫!

    i春秋SRC部落联合同程SRC发布首届部落守卫者漏洞提交任务(代号G001)! 你准备好了吗! [部落守卫者集结令]拿巨额奖金?上白帽子排行榜?近距离膜拜大佬?学技术?掌握窍门?又或者你是个责任感爆棚 ...

  2. 网络1711-1712的C语言作业总结(2017-2018第一学期)

    1.第0次作业总结--预备作业 作业地址 1711班级总结 1712班级总结 2.第一次作业总结--顺序结构 作业地址 1711班级总结 1712班级总结 3.第二次作业总结--分支结构 作业地址 1 ...

  3. Alpha冲刺No.7

    一.站立式会议 彻底完成初步的界面设计 实现界面的简单跳转 完成部分事件监听 移植摄像头.图库功能到真实手机环境测试 数据库上传获取日记 二.项目实际进展 完成了简单的界面设计 大致完成了跳转任务 数 ...

  4. 学号:201621123032 《Java程序设计》第9周学习总结(

    1:本周学习总结 1.1:以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容 2:书面作业 2.1: List中指定元素的删除(题集题目) 2.1.1:实验总结.并回答:列举至少2种在List ...

  5. C程序第一次作业

    1-1 计算两数的和与差 1 设计思路 (1)主要描述题目算法 第一步:利用指针psum接收sum的地址,指针pdiff接收diff的地址,因此 * psum为sum, * pdiff为diff. 第 ...

  6. electron-vue工程创建

    没有vue创建经验请移步至 vue下载与安装 使用vue创建electron-vue工程 vue init simulatedgreg/electron-vue my-project 安装elemen ...

  7. Dijkstra算法课后补分博客

    题目名称:Dijkstra算法 题目要求:课上给出相关附图,求解附图顶点A的单源最短路径. 附图: 做题过程 1.了解Dijkstra算法的相关知识,包括定义以及使用方法. 定义:Dijkstra算法 ...

  8. 异步协程 的 trip库

    import trip headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, ...

  9. Cocoapods最全完整使用教程

    什么是cocoapods cocoapods是库管理工具. cocoapods的用途 解决库之间的依赖关系.如前文所述: 一个开源的项目可能是另一个项目的基础, A依赖B, B依赖C和D, D又依赖E ...

  10. 修改MYSQL的默认连接时长

    show global variables like 'wait_timeout'; 设置成10小时; set global wait_timeout=36000;