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

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. 四则运算程序(java基于控制台)

    四则运算题目生成程序(基于控制台) 一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r ...

  2. C作业--初步

    第一周: 知识点:第一个c程序 练习:printf 第二周: 知识点:常量变量,数据类型和运算符 练习:数学公式的求解:比如重力加速度,华氏温度与摄氏温度的转换,汇率等. 第三周: 知识点:print ...

  3. C程序设计-----第0次作业

    C程序设计-----第0次作业- 1.翻阅邹欣老师的关于师生关系博客,并回答下列问题,每个问题的答案不少于500字:(50分)- 1)最理想的师生关系是健身教练和学员的关系,在这种师生关系中你期望获得 ...

  4. Linux下I/O多路转接之select --fd_set

    fd_set 你终于还是来了,能看到这个标题进来的,我想,你一定是和我遇到了一样的问题,一样的疑惑,接下来几个小时,我一定竭尽全力,写出我想说的,希望也正是你所需要的: 关于Linux下I/O多路转接 ...

  5. localhost访问不了的解决方法

    c:\windows\system32\drivers\etc\hosts 用记事本打开,加入一行 127.0.0.1       localhost

  6. 【Learning】 多项式的相关计算

    约定的记号 对于一个多项式\(A(x)\),若其最高次系数不为零的项是\(x^k\),则该多项式的次数为\(k\). 记为\(deg(A)=k\). 对于\(x\in(k,+ \infty)\),称\ ...

  7. django models的点查询/跨表查询/双下划线查询

    django models 在日常的编程中,我们需要建立数据库模型 而往往会用到表与表之间的关系,这就比单表取数据要复杂一些 在多表之间发生关系的情形下,我们如何利用models提供的API的特性获得 ...

  8. SQL Server元数据损坏(metadata corruption)修复

    在升级一个SQL Server 2000的数据库时,遇到了一致性错误,其中有几个错误是元数据损坏(metadata corruption),特意研究了一下这个案例,因为以前也零零散散的遇到过一些一致性 ...

  9. api-gateway实践(13)新服务网关 - 断路保护/熔断机制

    参考链接:SpringCloud的Hystrix(五) Hystrix机制 新需求列表 1.在线测试 根据定义,生成输入界面, 点击测试, 验证参数,发起调用,返回执行结果 2.熔断保护 两个实现类: ...

  10. restful架构风格设计准则(六)版本管理

    读书笔记,原文链接:http://www.cnblogs.com/loveis715/p/4669091.html,感谢作者! 版本管理 在前面已经提到过,一个REST系统为资源所抽象出的URI实际上 ...