`
天空之城
  • 浏览: 406598 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Dbutils详解

    博客分类:
  • Java
阅读更多

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);
 }
}

 

 

分享到:
评论

相关推荐

    DButils详解

    * DBUtils详解 * DBUtils是一个用于操作数据库的组件,它对JDBC API进行了二次封装,简化了数据库操作,减少了代码量。 * DBUtils包含三个主要包: * `org.apache.commons.dbutils`:基础包,包含了核心类和接口...

    commons-dbutils-1.4.jar

    《Apache Commons DBUtils详解及其在Java数据库操作中的应用》 Apache Commons DBUtils是Apache软件基金会开发的一个开源项目,它提供了一套简洁、高效且实用的工具类,用于简化Java应用程序中的数据库操作。这个...

    commons-dbutils-1.7.jar

    《Apache Commons DBUtils详解》 Apache Commons DBUtils是一款在Java编程中广泛使用的数据库操作工具库,它的全称为“Apache Commons Database Utilities”。这个小巧且高效的库为开发者提供了方便、安全的数据库...

    commons-dbutils-1.6.jar

    《Apache Commons DBUtils详解》 Apache Commons DBUtils是一款开源的Java数据库工具库,它简化了JDBC编程,为开发者提供了一种简洁、高效且易于使用的API。在标题"commons-dbutils-1.6.jar"中,我们可以看到这是...

    Dbutils_详解.docx

    Dbutils 提供了一个名为 `DbUtils` 的工具类,以及 `QueryRunner` 类,这两个类是其核心组件。 `DbUtils` 类: - 提供了一些静态方法,用于加载 JDBC 驱动、管理数据库连接的生命周期(打开与关闭)以及处理异常。 ...

    课件DBUtils

    DBUtils详解,含函数介绍和使用 QueryRunner

    数据库连接池和DBUtils使用1

    【数据库连接池与DBUtils详解】 数据库连接池是数据库管理中的一个重要概念,它解决了传统JDBC操作数据库时频繁创建和关闭连接导致的性能问题。在Java编程中,数据库连接池的使用可以显著提升应用程序的效率,因为...

    JDBC工具类

    ### JDBC工具类——DBUtils详解 #### 一、概述 在Java编程中,数据库操作是一项常见且基础的任务。然而,直接使用JDBC进行数据库交互时,我们常常会遇到大量重复的代码片段,如连接数据库、执行SQL语句、处理结果...

    安卓Android源码——xUtils-master.rar

    二、DbUtils详解 DbUtils是xUtils中负责数据库操作的部分,它基于SQLite,提供了简单的API供开发者使用。DbUtils的主要特性有: 1. 数据库版本管理:自动处理数据库升级,通过onUpgrade()方法更新表结构。 2. 数据...

    DBUtils操作数据库以及事物的管理

    ### DBUtils操作数据库及事务管理详解 #### 一、DBUtils简介 DBUtils是一个轻量级的Java数据库访问工具类库,它简化了JDBC的使用步骤,使得开发者能够更方便地进行数据库操作。相比于传统的JDBC编程方式,DBUtils...

    dbutils框架

    **dbutils框架详解** Apache DBUtils(Database Utilities)是一个基于Java的开源数据库操作框架,它由Apache软件基金会提供,旨在简化数据库操作,提高开发效率。DBUtils的核心理念是通过提供一组实用工具类来减少...

    dbutils工具包和源文件

    **dbutils工具包详解** `dbutils` 是一个基于Java的开源数据库操作工具包,它在JDBC(Java Database Connectivity)的基础上提供了一层简洁而强大的封装,极大地简化了数据库的编程工作。`dbutils` 由Apache软件...

    Python库 | dbutils-gonzalo123-1.3.4.tar.gz

    《Python库dbutils-gonzalo123-1.3.4详解》 在Python的世界里,库扮演着至关重要的角色,它们为开发者提供了丰富的功能,简化了代码编写,提高了开发效率。今天我们要探讨的是一款名为`dbutils-gonzalo123-1.3.4`的...

    java commons-dbutils-1.2.jar

    **Java Commons DBUtils 1.2.jar 知识点详解** `commons-dbutils-1.2.jar` 是一个由Apache软件基金会开发并维护的Java库,它是Apache Commons项目的一部分,专注于简化数据库操作。这个小巧而实用的库为Java开发者...

    java学习笔记之DBUtils工具包详解

    Java学习笔记之DBUtils工具包详解 DBUtils是Apache组织开源的数据库工具类,提供了简洁的数据库操作方式,主要包括QueryRunner和ResultSetHandler两个主要组件。下面将详细介绍DBUtils工具包的使用步骤、构造方法及...

    jdbc+数据库连接池+dbutils

    ### JDBC与数据库交互详解 #### 一、JDBC概述 JDBC(Java Database Connectivity)是Java平台上用于连接数据库的一种标准接口。它允许开发者通过统一的API来访问多种类型的数据库,从而实现了应用程序与不同数据库...

    自己写的dbutils工具

    《自己编写的dbutils工具详解》 在软件开发过程中,工具的选择与使用往往能极大地提升工作效率。本文将详细介绍一个名为“dbutils”的自编工具,它是一个1.5测试版的开发工具,专注于数据库的通用访问操作、文件...

    dbutils开源项目用法.doc

    ### DBUtils开源项目详解 #### 一、简介 DBUtils是一个强大的开源库,隶属于Apache Commons项目,主要用于简化Java中JDBC的使用。它的设计目的是为了减少JDBC编码时的样板代码,提供更简洁、更安全的数据库操作...

    dbutils jar包

    **dbutils jar包详解** `dbutils` 是一个由Apache软件基金会开发的Java库,它为数据库操作提供了简单而强大的工具。这个jar包包含了不同版本的dbutils,分别是`dbutils1.6`、`dbutils1.7`和`dbutils1.4`,以及`...

    -dbutils使用说明.pdf

    1. Commons dbutils 主要组件详解: - `DbUtils` 类:这是一个静态工具类,包含了一系列辅助方法,用于简化数据库操作中的常见任务。例如,`loadDriver()` 方法可以自动加载并注册JDBC驱动,无需处理`...

Global site tag (gtag.js) - Google Analytics