28、jdbc操作数据库(5)
介绍一个稍微封装了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)相关推荐
- JavaWeb:用JDBC操作数据库
JDBC系列阅读 JavaWeb:用JDBC操作数据库 JavaWeb:JDBC之事务 JavaWeb:JDBC之数据库连接池 使用JDBC实现水果超市管理系统 1. 什么是JDBC JDBC的全称是 ...
- Java系列技术之JDBC操作数据库-钟洪发-专题视频课程
Java系列技术之JDBC操作数据库-22人已学习 课程介绍 JDBC连接数据库是Java系列技术中数据库知识的核心技术,是学习后续课程JavaWeb入门前需要掌握的基础! 这门课的前 ...
- 25、jdbc操作数据库(2)
说一下使用jdbc时涉及到的一些基本的接口和类 java.sql.Driver 是数据库驱动接口,com.mysql.jdbc.Driver是mysql对应的驱动,由数据库供应商实现,用于提供驱动,实 ...
- 24、jdbc操作数据库(1)
什么是jdbc? 看一下官方怎么说,JDBC 英文名Java DataBase Connectivity,使用java连接数据库的工具,就是一组使用java代码来执行SQL语句的API. Jdbc有什 ...
- java监听数据库操作_第十六篇——JDBC操作数据库之监听器
JavaWeb应用中,很多的地方都和session有关.因此session相关的事件监听器,在日常工作中非常有用. 有时候我们需要统计当前在线的人数和访问人数总数,此时就可以使用监听器技术来很简单的实 ...
- Mybatis介绍、jdbc操作数据库原始写法以及Mybatis架构
文章目录 Mybatis介绍 jdbc操作数据库原生写法 使用jdbc编程问题总结 Mybatis架构 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个 ...
- jdba访问mysql_Java中JDBC操作数据库的步骤
Java中JDBC操作数据库的步骤,今天给喜欢Java开发或者是想要参加Java培训学习的小伙伴们分享一些Java技能干货,那就是Java阐述jdba操作数据库的步骤,废话不多说了,随小编一起来看一下 ...
- java完整JDBC操作数据库
java使用JDBC操作数据库的包含以下7个主要步骤: 1.加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的 ...
- 说说JDBC 操作数据库的步骤?
分析&回答 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操作结果集. ...
- 【JDBC】JDBC 简介 ( JDBC 概念 | JDBC 本质 | 使用 JDBC 操作数据库的好处 | JDBC 提供的 API 组件 )
文章目录 一.JDBC 概念 二.JDBC 本质 三.使用 JDBC 操作数据库的好处 四.JDBC 提供的 API 组件 一.JDBC 概念 JDBC 全称 Java DataBase Connec ...
最新文章
- android 长按赋值功能,android实现WebView中长按选中复制文本操作
- ti的硬件时钟和系统时钟同步
- 【笔记】js Function类型 内部方法callee
- Android JNI入门第四篇——jni头文件分析
- linux7.0怎么设置中文,CentOS 7 yum安装zabbix 设置中文界面
- SAP Odata batch操作,只支持multipart_mixed类型的content-type
- 华为麒麟990芯片发布;谷歌宣布开源创新隐私保护技术;阿里20亿美元全资收购网易考拉;中国联通将设立100亿5G创新基金……...
- 4________请拖拽到此区域5________请拖拽到此区域_5分钟学会:蒙版与通道(剪贴蒙版)...
- 易乐游无盘服务器缓存设置,易乐游缓存设置图文教程
- Exchange Reporter Plus概述
- HDU 1301 - Jungle Roads( Prim求最小生成树 )
- linux php添加扩展zip libzip ZipArchive功能
- Linux之FTP服务、NFS服务、RPC服务及案例
- 坚果pro2刷机分享
- 2013-07-29 IT 要闻速记快想
- 小学生机器人挑战赛_适合小学生参加的机器人比赛有哪些?
- 神箭手云爬虫-爬取携程【国际】航班/机票信息-利用python解析返回的json文件将信息存储进Mysql数据库
- javascript弹出窗口代码
- 企业微信和个人微信优劣势是什么?如何实现站外引流到微信?
- linux 命令行语法错误,sudo命令:解决使用Linux命令行时出现的错误提示
热门文章
- python如何封装成可调用的库_Python实现打包成库供别的模块调用
- 7-42 整型关键字的散列映射 (25 分)(思路加详解)兄弟们 来呀 写题呀
- [C++11]统一的数据初始化方式 - 初始化列表
- Zjnu Stadium HDU - 304 加权并查集
- D. 关灯问题(规律或二分)
- srs10流程图_高效的SRS资源指示方法与流程
- pm1 android,Android Sensor SDK
- AtCoder Regular Contest 063 E - Integers on a Tree 构造 + 二分图染色
- [CQOI2018]异或序列
- Educational Codeforces Round 119 (Rated for Div. 2)