今儿在学习spring框架的时候,让我想起来之前做项目时一直搁置的一个问题,就是DBUtils框架的做数据库操作的使用,当时制作项目的时候就是通过实例打了一遍,由于时间原因也并没有仔细去了解这一方面。所以,今天来学习下对于这方面的使用。

通过查阅资料发现QueryRunner类的基本CRUD的使用
以下是我摘下来的一些认为重要的点
QueryRunner中一共有6种方法:
  • execute(执行SQL语句)
  • batch(批量处理语句)
  • insert(执行INSERT语句)
  • insertBatch(批量处理INSERT语句)
  • query(SQL中 SELECT 语句)
  • update(SQL中 INSERT, UPDATE, 或 DELETE 语句)
我们主要介绍最后两种(最常用):
query方法
  1. T query(String sql, ResultSetHandler rsh) 不需要替换参数来执行已给予的SELECT语句
  2. T query(String sql, ResultSetHandler rsh, Object... params) 需要一个或多个替换参数来执行已给予的SELECT语句,并返回一种对象结果
update方法
  1. int update(Connection conn, String sql) 不需要替换参数来执行INSERT, UPDATE DELETE语句
  2. int update(Connection conn, String sql, Object... params) 需要一个或多个替换参数以及一个数据库连接来执行INSERT, UPDATE DELETE语句
  3. int update(Connection conn, String sql, Object param) 需要一个替换参数,以及一个数据库连接来执行INSERT, UPDATE DELETE语句
  4. int update(String sql) 不需要替换参数来执行已给予的INSERT, UPDATE DELETE语句
  5. int update(String sql, Object... params) 需要一个或多个替换参数来执行INSERT, UPDATE DELETE语句(参数无需带有连接)
  6. int update(String sql, Object param) 不需要替换参数来执行INSERT, UPDATE DELETE语句(参数无需带有连接)

更新方法

查找方法


下面是ResultSetHandler接口的使用
来自大佬的分享
ResultSetHandler接口 该接口用于处理java.sql.ResultSet,将数据按要求转换为另一种形式。 ResultSetHandler接口提供了一个单独的方法:Object handle(java.sql.ResultSet.rs)。 ResultSetHandler接口的实现类 ArrayHandler:把结果集中的第一行数据转换成对象数组。 ArrayListHandler:把结果集中的每一行数据都转换成一个对象数组,再存放到List中。 BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。 BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。 MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。 MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。 ColumnListHandler:将结果集中某一列的数据存放到List中。 KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里(List),再把这些map再存到一个map里,其key为指定的列。 ScalarHandler:获取结果集中第一行数据指定列的值,常用来进行单值查询
可能有些同学不懂什么事JavaBean,下面给出JavaBean的概念
JavaBean是使用Java语言开发的一个可重用组件,能使Html代码与JAVA代码分离,并节省开发时间,简单的说就是一个包含了setter和getter以及至少一个无参构造方法的JAVA类。
//JavaBean的栗子如下
public class Person {
private String name;
private int age;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
 
//查询所有
public List<Account> findAllAccount() {
try {
return runner.query("select * from account", new BeanListHandler<Account>(Account.class));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
// 返回Account的集合

//通过Id查询
public Account findAccountById(Integer accountId) {
try {
return runner.query("select * from account where id = ? ", new BeanHandler<Account>(Account.class), accountId);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
// 返回一个Account的结果
 
已上就是我通过总结大佬的分享,对ResultSetHandler的理解。
谢谢大家的观看~

DBUtils框架ResultSetHandler接口学习的更多相关文章

  1. Apache——DBUtils框架ResultSetHandler接口使用

    参考链接:http://i.cnblogs.com/EditPosts.aspx?opt=1 简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDB ...

  2. pache—DBUtils框架简介、DbUtils类、QueryRunner类 、ResultSetHandler接口

    Apache—DBUtils框架简介.DbUtils类.QueryRunner类 .ResultSetHandler接口 commons-dbutils 是 Apache 组织提供的一个开源 JDBC ...

  3. JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表

    本文目录:       1.自定义JDBC框架 ——数据库元数据:DataBaseMetaData        2.自定义JDBC框架 ——数据库元数据:DataBaseMetaData       ...

  4. javaweb学习总结(四十一)——Apache的DBUtils框架学习

    一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化 ...

  5. Apache的DBUtils框架学习(转)

    原文地址:http://www.cnblogs.com/xdp-gacl/p/4007225.html 一.commons-dbutils简介 commons-dbutils 是 Apache 组织提 ...

  6. Apache的DBUtils框架学习(转)

    一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化 ...

  7. javaweb学习总结—Apache的DBUtils框架学习

    注明: 本文转载自http://www.cnblogs.com/xdp-gacl/p/4007225.html 一.commons-dbutils简介 commons-dbutils 是 Apache ...

  8. Apache—DBUtils框架简介

    转载自:http://blog.csdn.net/fengdongkun/article/details/8236216 Apache—DBUtils框架简介.DbUtils类.QueryRunner ...

  9. JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作

    1 JNDI和在tomcat中配置DBCP连接池 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.namin ...

随机推荐

  1. Java开发笔记(一百二十四)AWT绘图操作

    前面介绍了如何使用画笔在控件上展示图像,可是图像来源于磁盘图片,无法即兴绘制个性化的图案.所幸画笔工具Graphics不仅能够描绘图像,还支持绘制常见的几何形状,也支持绘制文本字符串,除了绘制图像用到 ...

  2. FireDAC 中文字段过滤问题

    当使用 FireDAC Filter  过滤数据的时候,通常这样写: FDMemTable.Filtered := False; FDMemTable1.Filter := '姓名=' + strin ...

  3. 微信小程序的登入与授权

    官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 小程序登录 小程序可以通 ...

  4. PHP网文

    1.php底层运行机制及原理 https://cloud.tencent.com/developer/article/1055801

  5. quartz2.3.0(五)制定错过执行任务的misfire策略,用pause,resume模拟job暂停执行和继续执行

    感谢兄台: <quartz-misfire 错失.补偿执行> misfire定义 misfire:被错过的执行任务策略 misfire重现——CronTrigger job任务类: pac ...

  6. Java知识回顾 (11) 异常处理

    距离最近的 Java知识回顾系列(10),2019.4.24日,到现在,已经近半年过去了. 感觉,做一件事情,如果有头无尾,实在不好,心里会一直悬着.所以,现在继续上面的内容. 再次声明,正如(1)中 ...

  7. 【阿里云开发】- 安装tomcat

    Tomcat配置过程 1.下载Tomcat 官网地址:http://tomcat.apache.org/ 这里我用的是apache-tomcat-8.5.38.tar.gz 2.通过ftp工具将下载好 ...

  8. springboot学习入门简易版六---springboot2.0整合全局捕获异常及log4j日志(12-13)

    使用Aop实现 1创建异常请求 在原有项目基础上,jspController中创建一个可能发生异常的请求: /** * 全局捕获异常测试 * @param i * @return */ @Reques ...

  9. jenkens + github

    一  获取github accessToken 依次点击 settings----> Developer settings --->Personal access tokens  到这里如 ...

  10. MySQL Hardware--RAID卡BBU Learn Cycle

    RAID卡缓存策略 不同的RAID卡缓存策略对IO的性能影响较大,常见的策略有: 1.写操作策略,可设置为WriteBack或WriteThrough WriteBack:进行写操作时,将数据写入RA ...