Common Dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。

DBUtils包括3个包:

org.apache.commons.dbutils

org.apache.commons.dbutils.handlers

org.apache.commons.dbutils.wrappers

DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。

org.apache.commons.dbutils

DbUtils 关闭链接等操作

QueryRunner 进行查询的操作

org.apache.commons.dbutils.handlers

ArrayHandler :将ResultSet中第一行的数据转化成对象数组

ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是 Object[]

BeanHandler :将ResultSet中第一行的数据转化成类对象

BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类对象

ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是 Object对象

KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map。Map中存放的是数据

MapHandler :将ResultSet中第一行的数据存成Map映射

MapListHandler :将ResultSet中所有的数据存成List。List中存放的是Map

ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object

org.apache.commons.dbutils.wrappers

SqlNullCheckedResultSet :对ResultSet进行操作,改版里面的值

StringTrimmedResultSet :去除ResultSet中中字段的左右空格。Trim()

主要方法:

DbUtils类:启动类

ResultSetHandler接口:转换类型接口

MapListHandler类:实现类,把记录转化成List

BeanListHandler类:实现类,把记录转化成List,使记录为JavaBean类型的对象

Qrery Runner类:执行SQL语句的类

建立三个Java文件

命名为BeanListExample.java

Guestbook.java

MapListExample.java

源码:

BeanListExample.java

Code

package com.sy;

import org.apache.commons.dbutils.DbUtils;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.List;

public class BeanListExample {

public static void main(String[] args) {

Connection conn = null ;

String url = " jdbc:mysql://localhost:3306/people" ;

String jdbcDriver = " com.mysql.jdbc.Driver" ;

String user = " root " ;

String password = " hicc " ;

DbUtils.loadDriver(jdbcDriver);

try {

conn = DriverManager.getConnection(url, user, password);

QueryRunner qr = new QueryRunner();

List results = (List) qr.query(conn, " select id,name from guestbook" , new BeanListHandler(Guestbook.class ));

for ( int i = 0 ; i < results.size(); i++ ) {

Guestbook gb = (Guestbook) results.get(i);

System.out.println(" id: " + gb.getId() + " ,name: " + gb.getName());

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DbUtils.closeQuietly(conn);

}

}

}

Guestbook.java

Code

package com.sy;

public class Guestbook {

private Integer id;

private String name;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this .id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this .name = name;

}

}

MapListExample.java

Code

package com.sy;

import org.apache.commons.dbutils.DbUtils;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.MapListHandler;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.List;

import java.util.Map;

public class MapListExample {

public static void main(String[] args) {

Connection conn = null ;

String url = " jdbc:mysql://localhost:3306/people" ;

String jdbcDriver = " com.mysql.jdbc.Driver" ;

String user = " root " ;

String password = " hicc " ;

DbUtils.loadDriver(jdbcDriver);

try {

conn = DriverManager.getConnection(url, user, password);

QueryRunner qr = new QueryRunner();

List results = (List) qr.query(conn, " select id,name from guestmessage" , new MapListHandler());

for ( int i = 0 ; i < results.size(); i++ ) {

Map map = (Map) results.get(i);

System.out.println(" id: " + map.get( " id " ) + " ,name: " + map.get( " name " ));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DbUtils.closeQuietly(conn);

}

}

}

使用组建好需要添加commons - dbutils - 1.1 .jar和mysql - connector - java - 5.1 . 6 - bin.jar 两个jar包。

配置完毕!!!

// 另一种方法

// 使用dbutils1.0版本

import java.util. * ;

import java.util.logging.* ;

import java.sql.* ;

import org.apache.commons.dbutils.* ;

import org.apache.commons.dbutils.handlers.* ;

public class TestDBUnits {

public static void main(String[]args) throws Exception {

TestDBUnits test = new TestDBUnits();

for ( int i = 0 ; i < 1 ; i ++ ) {

test.testQuery1();

test.testQuery2();

test.testUpdate();

}

}

public void testQuery1(){

try {

QueryRunner qr = new QueryRunner() ;

ResultSetHandler rsh = new ArrayListHandler();

String strsql = " select * from test1" ;

ArrayList result = (ArrayList)qr.query(getConnection() ,strsql ,rsh);

// System.out.print("");

} catch (Exception ex) {

ex.printStackTrace(System.out);

}

}

public void testQuery2(){

try {

QueryRunner qr = new QueryRunner() ;

ResultSetHandler rsh = new MapListHandler();

String strsql = " select * from test1" ;

ArrayList result = (ArrayList)qr.query(getConnection() ,strsql ,rsh);

for ( int i = 0 ; i < result.size() ; i++ ) {

Map map = (Map)result.get(i);

// System.out.println(map);

}

// System.out.print("");

} catch (Exception ex) {

ex.printStackTrace(System.out);

}

}

public void testUpdate(){

try {

QueryRunner qr = new QueryRunner() ;

ResultSetHandler rsh = new ArrayListHandler();

String strsql = " insert test1(page ,writable ,content)values('ttt','ttt','faskldfjklasdjklfjasdklj')" ;

qr.update(getConnection() ,strsql);

// System.out.print("");

} catch (Exception ex) {

ex.printStackTrace(System.out);

}

}

private Connection getConnection() throws InstantiationException,

IllegalAccessException, ClassNotFoundException, SQLException {

String strDriver = " org.gjt.mm.mysql.Driver" ;

String strUrl = " jdbc:mysql://localhost:3306/test" ;

String strUser = " root " ;

String strPass = "" ;

Class.forName(strDriver).newInstance();

return DriverManager.getConnection(strUrl, strUser, strPass);

}

}

mysql dbutil_DBUtil详解相关推荐

  1. pandas读写MySQL数据库详解及实战

    pandas读写MySQL数据库详解及实战 SQLAlchemy是Python中最有名的ORM工具. 关于ORM: 全称Object Relational Mapping(对象关系映射). 特点是操纵 ...

  2. Mysql Explain 详解

    Mysql Explain 详解 一.语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二. ...

  3. MySQL存储过程详解 mysql 存储过程

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  4. mysql存储过程详解[转]

    mysql存储过程详解[转] 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功 ...

  5. mysql-win安装教程,WINDOWS下安装MYSQL教程详解

    1.下载安装包 2.配置环境变量 2.1 解压所下载的压缩包 2.2 环境变量 win 10 电脑 这么进去 3.生成data文件 在你解压的目录下,eg:F:\Program Files\mysql ...

  6. MySQL Explain详解,分析语句为何运行慢

    MySQL Explain详解 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语 ...

  7. 史上最简单MySQL教程详解(进阶篇)之存储过程(一)

    史上最简单MySQL教程详解(进阶篇)之存储过程(一) 史上最简单MySQL教程详解(进阶篇)之存储过程(一) 什么是存储过程 存储过程的作用 如何使用存储过程 创建存储过程 DELIMITER改变分 ...

  8. 史上最简单MySQL教程详解(进阶篇)之存储引擎介绍及默认引擎设置

    什么是存储引擎? MySQL存储引擎种类 MyISAM 引擎 InnoDB引擎 存储引擎操作 查看存储引擎 存储引擎的变更 修改默认引擎 什么是存储引擎? 与其他数据库例如Oracle 和SQL Se ...

  9. mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例

    <MysqL教程MysqL 复制详解及简单实例>要点: 本文介绍了MysqL教程MysqL 复制详解及简单实例,希望对您有用.如果有疑问,可以联系我们. MysqL 复制详解及简单实例 主 ...

  10. win10mysql卸载与重装_win10下完全卸载+重装MySQL步骤详解

    相信大家因为种种各样的原因,需要重新版安装MySQL.笔者就因为连接MySQL和Qt时出现问题,迫不得已选择把64bitMySQL换成了32bitMySQL.由于卸载不干净,安装会出现种种问题.现在把 ...

最新文章

  1. 怎么读取h5文件内容_【Python编程特训连载72】读取two.txt文件,模拟输出“两会”内容 答案公布...
  2. 第七周项目三-用多文件组织多个类的程序
  3. 【数据结构-查找】1.通俗易懂讲解 —— 顺序-折半-分块查找
  4. maven报错: 错误的类文件:… 类文件具有错误的版本 52.0,应为 54.0
  5. lottie android min sdk,跳一个Lottie无法回调开始播放动画事件的坑
  6. 1218. 最长定差子序列
  7. celery 可视化_3-django进阶之celery
  8. CVPR 2019全部论文下载!
  9. 一套提取自 Ant Design 的优质图标
  10. 瑞星云安全截获新感染病毒 6月感染网民263万
  11. linux php验证码无法显示,PHPCMS在Linux下后台验证码无法显示的解决方法
  12. Linux 文件锁的原理、实现和应用
  13. 儿童智能定位鞋方案/案列/APP/小程序/网站
  14. 每天读一点好玩心理学--酒吧
  15. 原生js实现fadein 和 fadeout淡入淡出效果
  16. java 一般方法_java有哪些方法
  17. QQ2006Beta1已定于明天发布(转)
  18. 2021年消防工程师证报考条件是什么?
  19. APP开发已经没有前途了吗?APP开发人员未来何去何从?
  20. 概率统计笔记:白噪声与随机游走

热门文章

  1. 【Python】爬取xici和快代理的免费代理ip
  2. iOS官方demo下载网站
  3. 物理学步入禅境,缘起性空
  4. ExtJS 教程汇总
  5. excel VBA编程番外篇(字典+正则表达式+FSO)-曾贤志-专题视频课程
  6. 黑苹果系统是服务器系统,黑苹果各种版本的说明 _ 黑苹果乐园
  7. T-SQL 小数点转换百分数
  8. EHS法律法规的收集渠道
  9. Truecrypt加密软件文件检测
  10. excel缩字间距_excel字体间距紧缩