`
bdk82924
  • 浏览: 573340 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

DbUtils的使用

 
阅读更多
DbUtils的使用

今天在看一段源码的时候,看到了可以使用DbUtils来操作Jdbc

大致研究了DbUtils ,它对Jdbc的操作进行了二次封装,这样我们对数据库的操作就更加方便了,有时间的话大家一定要研究下

http://cuics-100.iteye.com/blog/841207
这篇文章解读了DbUtils的源码 ,其实源码并不是太复杂,大家可以把源码包下载下来看看

http://baike.baidu.com/view/4877026.htm
百度百科

http://commons.apache.org/dbutils/
DbUtils官网


研究了一段 使用 org.apache.commons.dbutils.handlers的代码

package dbutils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.*;

public class HandlersExample
{
    public static void main(String[] args)
    {
        Connection conn = null;
        String url = "jdbc:sybase:Tds:10.47.181.179:4100?language=us_english";
        String jdbcDriver = "com.sybase.jdbc3.jdbc.SybDriver";
        String user = "sa";
        String password = "";
        DbUtils.loadDriver(jdbcDriver);
        try
        {
            conn = DriverManager.getConnection(url, user, password);
            QueryRunner qr = new QueryRunner();

            // 插入一条数据
            qr.update(conn, "insert into zxinweb..guestbook(id,name) values (5,'name5')");

            // 采用ArrayHandler方式查询单条记录
            System.out.println("....ArrayHandler....");
            Object[] r1 = qr.query(conn, "select id,name  from zxinweb..guestbook where id =5", new ArrayHandler());
            for (int i = 0; i < r1.length; i++)
            {
                System.out.print(r1[i] + " ");
            }
            System.out.println("");
            // 采用ArrayListHandler方式查询 多条记录
            System.out.println("....ArrayListHandler....");
            List r2 = qr.query(conn, "select id,name  from zxinweb..guestbook", new ArrayListHandler());

            for (int i = 0; i < r2.size(); i++)
            {
                Object[] o = (Object[]) r2.get(i);
                for (int x = 0; x < o.length; x++)
                {
                    System.out.print(o[x] + " ");
                }
                System.out.println(" ");
            }

            // 采用BeanHandler方式查询 单条记录
            System.out.println("....BeanHandler....");
            Guestbook r3 = (Guestbook) qr.query(conn, "select id,name  from zxinweb..guestbook", new BeanHandler(
                    Guestbook.class));
            System.out.println(r3);

            // 采用BeanListHandler方式查询
            System.out.println("....BeanListHandler....");
            List<Guestbook> r4 = (List) qr.query(conn, "select id,name  from zxinweb..guestbook", new BeanListHandler(
                    Guestbook.class));

            for (int i = 0; i < r4.size(); i++)
            {
                Guestbook gb = r4.get(i);
                System.out.println(gb);
            }

            // 采用BeanMapHandler方式查询 查询多条
            System.out.println("....BeanMapHandler....");

            ResultSetHandler<Map<Integer, Guestbook>> h5 = new BeanMapHandler(Guestbook.class, "id");
            Map<Integer, Guestbook> r5 = qr.query(conn, "select id,name from zxinweb..guestbook", h5);
            Guestbook g5 = r5.get(1); // jane's id is 1
            Iterator<Entry<Integer, Guestbook>> it5 = r5.entrySet().iterator();
            while (it5.hasNext())
            {
                System.out.println(it5.next());
            }

            // 采用ColumnListHandler方式查询 获取单个字段多条记录
            System.out.println("....ColumnListHandler....");
            List lName = (List) qr.query(conn, "select id,name from zxinweb..guestbook", new ColumnListHandler("name"));
            for (int i = 0; i < lName.size(); i++)
            {
                String name = (String) lName.get(i);
                System.out.println(name);
            }

            // 采用KeyedHandler方式查询 单个字段多条
            System.out.println("....KeyedHandler....");
            ResultSetHandler h7 = new KeyedHandler("id");
            Map map7 = (Map) qr.query(conn, "select id, name  from zxinweb..guestbook", h7);

            Iterator<Entry<Integer, Map<String, String>>> it7 = map7.entrySet().iterator();
            while (it7.hasNext())
            {
                Entry<Integer, Map<String, String>> entry = it7.next();
                System.out.println(entry.getKey() + " " + entry.getValue().get("name"));
            }

            // 采用MapHandler方式查询 单条记录
            System.out.println("....MapHandler....");
            Map map8 = (Map) qr.query(conn, "select id,name  from zxinweb..guestbook where id =5 ", new MapHandler());

            if (map8 != null)
            {
                System.out.println(map8.get("name"));
            }

            // 采用MapListHandler方式查询
            System.out.println("....MapListHandler....");
            List results2 = (List) qr.query(conn, "select id,name  from zxinweb..guestbook", new MapListHandler());
            for (int i = 0; i < results2.size(); i++)
            {
                Map gb = (Map) results2.get(i);
                System.out.println(gb.get("id") + " " + gb.get("name"));
            }

            // 采用ScalarHandler方式查询
            System.out.println("....ScalarHandler....");
            String name = (String) qr.query(conn, "select id,name  from zxinweb..guestbook where id =5", new ScalarHandler("name"));

            System.out.println(name);

            // 删除一条数据
            qr.update(conn, "delete from  zxinweb..guestbook where id =5 ");
        } catch (SQLException e)
        {
            e.printStackTrace();
        } finally
        {
            DbUtils.closeQuietly(conn);
        }
    }
}





结果

....ArrayHandler....
5 name5 
....ArrayListHandler....
1 name1  
2 name2  
5 name5  
....BeanHandler....
dbutils.Guestbook:[  id:1  name:name1]
....BeanListHandler....
dbutils.Guestbook:[  id:1  name:name1]
dbutils.Guestbook:[  id:2  name:name2]
dbutils.Guestbook:[  id:5  name:name5]
....BeanMapHandler....
1=dbutils.Guestbook:[  id:1  name:name1]
2=dbutils.Guestbook:[  id:2  name:name2]
5=dbutils.Guestbook:[  id:5  name:name5]
....ColumnListHandler....
name1
name2
name5
....KeyedHandler....
1 name1
2 name2
5 name5
....MapHandler....
name5
....MapListHandler....
1 name1
2 name2
5 name5
....ScalarHandler....
name5

分享到:
评论

相关推荐

    DButils的使用

    ### 三、DBUtils的使用 1. **创建数据库连接池**:使用DBUtils提供的`BasicDataSource`创建数据库连接池。 ```java BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName(prop.getProperty(...

    dbutils的使用.doc

    尽管给定文件的信息非常有限,但从标题“dbutils的使用.doc”可以推断出,这份文档主要关注的是dbutils在特定环境下的应用与操作指南。dbutils是Databricks Utilities的简称,它是一系列用于简化数据操作、提高开发...

    dbutils的使用研究

    本篇文章将深入探讨dbutils的使用,并结合提供的两个源代码文件`BaseDao.java`和`MyBeanProcessor.java`进行具体分析。 首先,dbutils是Apache的一个开源项目,它的全称是Jakarta-DBUtils,主要基于Java,提供了一...

    开源工具DbUtils的使用(数据库的增删改查)

    DBUtils是apache下的一个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味、最容易出错的一大部分工作。

    dbutils的使用_事务处理_多表操作_oracle大数据处理

    在DBUtils框架的使用中,可以进行增删改查、批处理以及大文本操作。DBUtils提供了一个QueryRunner类,它是一个工具类,用于执行SQL语句和返回结果。通过它可以快速地实现数据库连接的管理和SQL语句的执行。Query...

    DButils使用实例

    DButils是Apache的一个开源项目,它是Java编程语言中用于数据库操作的一个实用工具库。这个库主要是为了解决JDBC(Java ...通过学习和掌握DButils的使用,开发者可以更专注于业务逻辑,而不是基础的数据库操作。

    DbUtils数据库查询工具包 v1.8.1.zip

    在DbUtils 1.8.1中,`commons-dbutils-rel-commons-dbutils-1.8.1.jar`文件包含了DbUtils的所有实现类和接口,而`说明.htm`可能是DbUtils的使用文档,介绍了如何引入DbUtils库,以及如何使用QueryRunner、...

    springboot dbutils

    DbUtils的使用简化了JDBC代码,提高了代码的可读性和可维护性,而SpringBoot则通过自动化配置和声明式事务管理,使整个项目的结构更加清晰和高效。在实际项目中,根据需求可以进一步优化,如使用MyBatis等更强大的...

    commons-dbutils-1.7.jar

    《Apache Commons DBUtils详解》 Apache Commons DBUtils是一款在Java编程中广泛使用的数据库操作工具库,它的全称为“Apache Commons ...了解并熟练掌握DBUtils的使用,无疑能提升我们的开发效率,使代码更加健壮。

    day14--dbutils的使用_事务处理_多表操作_oracle大数据处理

    ### DBUtils框架的使用 #### 1. 使用DBUtils进行增删改查、批处理及大文本操作 DBUtils是Apache Commons项目中的一个子项目,它提供了一套强大的工具类来简化Java应用程序中的JDBC编程。相较于传统的JDBC操作,...

    dbutils工具类的使用

    《dbutils工具类的深度解析与应用》 在Java编程领域,数据库操作是不可或缺的一部分,而dbutils则是Java中一个非常实用的数据库操作工具库,...掌握dbutils的使用,无疑会提升开发者的代码质量,使项目更加稳定可靠。

    dbutils工具包和源文件

    **二、dbutils的使用示例** 1. **建立连接**: 首先需要配置JDBC驱动,并通过`DriverManager.getConnection()` 创建数据库连接。 2. **创建QueryRunner对象**: `QueryRunner runner = new QueryRunner(dataSource);...

    commons-dbutils-1.7.zip

    7. **配置简单**:DBUtils的使用非常简单,只需要提供数据库连接URL、用户名、密码以及驱动类名,即可创建`Connection`,无需额外的配置文件。 在实际开发中,你可以通过以下步骤使用DBUtils: 1. 引入依赖:将...

    Xutils中DButils的使用方法

    Xutils 中DButil 的使用方法,在做android 开发时 使用Xutils轻量级框架 如有不到位的地方,请指正。

    无涯教程(LearnFk)-DBUtils教程离线版.pdf

    DBUtils是一组旨在简化...DBUtils的使用提供了对JDBC操作的高级抽象,让Java开发人员能够更加专注于业务逻辑的实现,而不是底层的资源管理。它的简洁性和易用性使其成为Java Web开发中处理数据库操作的常用工具之一。

    DBUtils数据库的使用

    6. **PreparedStatement的使用**:DBUtils鼓励使用PreparedStatement来防止SQL注入攻击,它能自动处理参数绑定,提高代码的可读性和安全性。 关于SQLite,它是一个开源、轻量级的嵌入式关系数据库,广泛应用于移动...

    DbUtils.zip

    在实际使用中,DbUtils的使用步骤通常包括以下几个环节: 1. **创建数据库连接**:通过DataSource获取数据库连接。 2. **创建QueryRunner对象**:QueryRunner对象是执行SQL的载体。 3. **准备SQL语句**:根据需求...

    dbutils dbutils dbutils dbutils

    使用 DBUtils 可以显著提高数据库操作的稳定性和效率,特别是在Web服务、数据分析或其他大规模数据处理项目中。通过合理的配置和使用,DBUtils 可以帮助开发者构建更加健壮、高效的数据库应用。 在实际应用中,例如...

    apache 的 DbUtils1.6版的Html格式API 很全

    9. **配置简单**:DbUtils的使用非常简单,只需添加对应的jar依赖,然后通过基本的Java代码配置即可开始使用。 在学习和使用Apache DbUtils 1.6版本时,这份HTML格式的API文档将是你的重要参考资料。它会详细介绍每...

    Dbutils 的jar包

    Dbutils 基于 JDBC(Java Database Connectivity),提供了一套简洁、高效且易于使用的API,帮助开发者更方便地处理数据库操作,如执行SQL语句、处理结果集等。在Java开发中,使用Dbutils可以避免大量重复的JDBC模板...

Global site tag (gtag.js) - Google Analytics