介绍一个稍微封装了jdbc的工具类org.apache.commons.dbutils,使用dbutils可以简化对数据库操作程序的开发。

API介绍

接下来通过实例的方式说一下dbutils的具体使用

添加jar包:commons-dbutils-1.7.jar

增、删、改

进行增、删、改操作,在这里(未使用数据源)只需传入数据库连接、sql、占位符值到update方法中即可完成操作。代码如下:

public static void main(String[] args) {//可以直接传入一个数据源,这里不适用连接池做实例QueryRunner queryRunner = new QueryRunner();Connection connection = null;//进行增、删、改操作,在这里只需传入数据库连接、sql、占位符值到update方法中即可完成操作try {connection = DBUtil.getConnection();//添加String sql1 = "INSERT INTO USER (uname,password) VALUES (? , ?)";Object []obj1= {"xiaopeng","123456"};int update1 = queryRunner.update(connection,sql1, obj1);System.out.println("添加成功:"+update1);//修改String sql2 = "UPDATE USER SET UNAME = ? WHERE ID = ?";Object []obj2 = {"xiaopeng",20005};int update2 = queryRunner.update(connection, sql2, obj2);System.out.println("修改成功:"+update2);//删除String sql3 = "DELETE FROM USER WHERE ID = ?";int update3 = queryRunner.update(connection,sql3,20004);System.out.println("删除成功:"+update3);} catch (SQLException e) {e.printStackTrace();}finally {if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}
}

查询

使用dbutils进行查询时,需要了解如下几个类,他们用于将查询结果进行封装:

BeanListHandler:用于将结果集转成一个List集合,其泛型可用户自定义

public static void main(String[] args) {//可以直接传入一个数据源,这里不适用连接池做实例QueryRunner queryRunner = new QueryRunner();Connection connection = null;connection = DBUtil.getConnection();String sql = "SELECT UNAME ,PASSWORD  FROM USER LIMIT 3";try {List<User> list = queryRunner.query(connection, sql, new BeanListHandler<>(User.class));System.out.println(list);} catch (SQLException e) {e.printStackTrace();}}

BeanHandler:用于将结果封装成一个实体,用于返回一个结果的场景

public static void main(String[] args) {//可以直接传入一个数据源,这里不适用连接池做实例QueryRunner queryRunner = new QueryRunner();Connection connection = null;connection = DBUtil.getConnection();String sql = "SELECT UNAME ,PASSWORD  FROM USER WHERE ID = 4";try {//注意:这个地方一定要用实现类,否则容易报错User user = queryRunner.query(connection, sql, new BeanHandler<>(User.class));System.out.println(user);} catch (SQLException e) {e.printStackTrace();}
}

MapHandler:用于将返回的一个结果集封装成一个Map集合,用于返回一条结果集的场景

public static void main(String[] args) {//可以直接传入一个数据源,这里不适用连接池做实例QueryRunner queryRunner = new QueryRunner();Connection connection = null;connection = DBUtil.getConnection();String sql = "SELECT UNAME ,PASSWORD  FROM USER WHERE ID = 4";try {Map<String, Object> map = queryRunner.query(connection, sql, new MapHandler());System.out.println(map);} catch (SQLException e) {e.printStackTrace();}
}

MapListHandler:用于将返回的结果集封装成一个List集合,每一条记录信息封装到一个Map集合中

public static void main(String[] args) {//可以直接传入一个数据源,这里不适用连接池做实例QueryRunner queryRunner = new QueryRunner();Connection connection = null;connection = DBUtil.getConnection();String sql = "SELECT UNAME ,PASSWORD  FROM USER LIMIT 10";try {List<Map<String, Object>> list = queryRunner.query(connection, sql, new MapListHandler());System.out.println(list);} catch (SQLException e) {e.printStackTrace();}
}

基本实现原理:这几个封装类都实现了ResultSetHandler接口,然后根据不同的类型对应实现ResultSetHandler接口中的handle方法以实现结果集的封装,封装时最终都调用的是类BeanProcessor中的方法,具体封装过程可看源码

public interface ResultSetHandler<T> {T handle(ResultSet rs) throws SQLException;}

28、jdbc操作数据库(5)相关推荐

  1. JavaWeb:用JDBC操作数据库

    JDBC系列阅读 JavaWeb:用JDBC操作数据库 JavaWeb:JDBC之事务 JavaWeb:JDBC之数据库连接池 使用JDBC实现水果超市管理系统 1. 什么是JDBC JDBC的全称是 ...

  2. Java系列技术之JDBC操作数据库-钟洪发-专题视频课程

    Java系列技术之JDBC操作数据库-22人已学习 课程介绍         JDBC连接数据库是Java系列技术中数据库知识的核心技术,是学习后续课程JavaWeb入门前需要掌握的基础! 这门课的前 ...

  3. 25、jdbc操作数据库(2)

    说一下使用jdbc时涉及到的一些基本的接口和类 java.sql.Driver 是数据库驱动接口,com.mysql.jdbc.Driver是mysql对应的驱动,由数据库供应商实现,用于提供驱动,实 ...

  4. 24、jdbc操作数据库(1)

    什么是jdbc? 看一下官方怎么说,JDBC 英文名Java DataBase Connectivity,使用java连接数据库的工具,就是一组使用java代码来执行SQL语句的API. Jdbc有什 ...

  5. java监听数据库操作_第十六篇——JDBC操作数据库之监听器

    JavaWeb应用中,很多的地方都和session有关.因此session相关的事件监听器,在日常工作中非常有用. 有时候我们需要统计当前在线的人数和访问人数总数,此时就可以使用监听器技术来很简单的实 ...

  6. Mybatis介绍、jdbc操作数据库原始写法以及Mybatis架构

    文章目录 Mybatis介绍 jdbc操作数据库原生写法 使用jdbc编程问题总结 Mybatis架构 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个 ...

  7. jdba访问mysql_Java中JDBC操作数据库的步骤

    Java中JDBC操作数据库的步骤,今天给喜欢Java开发或者是想要参加Java培训学习的小伙伴们分享一些Java技能干货,那就是Java阐述jdba操作数据库的步骤,废话不多说了,随小编一起来看一下 ...

  8. java完整JDBC操作数据库

    java使用JDBC操作数据库的包含以下7个主要步骤: 1.加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的 ...

  9. 说说JDBC 操作数据库的步骤?

    分析&回答 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操作结果集. ...

  10. 【JDBC】JDBC 简介 ( JDBC 概念 | JDBC 本质 | 使用 JDBC 操作数据库的好处 | JDBC 提供的 API 组件 )

    文章目录 一.JDBC 概念 二.JDBC 本质 三.使用 JDBC 操作数据库的好处 四.JDBC 提供的 API 组件 一.JDBC 概念 JDBC 全称 Java DataBase Connec ...

最新文章

  1. android 长按赋值功能,android实现WebView中长按选中复制文本操作
  2. ti的硬件时钟和系统时钟同步
  3. 【笔记】js Function类型 内部方法callee
  4. Android JNI入门第四篇——jni头文件分析
  5. linux7.0怎么设置中文,CentOS 7 yum安装zabbix 设置中文界面
  6. SAP Odata batch操作,只支持multipart_mixed类型的content-type
  7. 华为麒麟990芯片发布;谷歌宣布开源创新隐私保护技术;阿里20亿美元全资收购网易考拉;中国联通将设立100亿5G创新基金……...
  8. 4________请拖拽到此区域5________请拖拽到此区域_5分钟学会:蒙版与通道(剪贴蒙版)...
  9. 易乐游无盘服务器缓存设置,易乐游缓存设置图文教程
  10. Exchange Reporter Plus概述
  11. HDU 1301 - Jungle Roads( Prim求最小生成树 )
  12. linux php添加扩展zip libzip ZipArchive功能
  13. Linux之FTP服务、NFS服务、RPC服务及案例
  14. 坚果pro2刷机分享
  15. 2013-07-29 IT 要闻速记快想
  16. 小学生机器人挑战赛_适合小学生参加的机器人比赛有哪些?
  17. 神箭手云爬虫-爬取携程【国际】航班/机票信息-利用python解析返回的json文件将信息存储进Mysql数据库
  18. javascript弹出窗口代码
  19. 企业微信和个人微信优劣势是什么?如何实现站外引流到微信?
  20. linux 命令行语法错误,sudo命令:解决使用Linux命令行时出现的错误提示

热门文章

  1. python如何封装成可调用的库_Python实现打包成库供别的模块调用
  2. 7-42 整型关键字的散列映射 (25 分)(思路加详解)兄弟们 来呀 写题呀
  3. [C++11]统一的数据初始化方式 - 初始化列表
  4. Zjnu Stadium HDU - 304 加权并查集
  5. D. 关灯问题(规律或二分)
  6. srs10流程图_高效的SRS资源指示方法与流程
  7. pm1 android,Android Sensor SDK
  8. AtCoder Regular Contest 063 E - Integers on a Tree 构造 + 二分图染色
  9. [CQOI2018]异或序列
  10. Educational Codeforces Round 119 (Rated for Div. 2)