DBUtils的使用

DButils是apache旗下Commons项目中的一个JDBC工具包,它可以为帮助我们简化对JDBC的操作,但它并不是一个ORM框架,只是可以为我们执行sql,并将返回的ResultSet转化成我们想要的对象。

import com.kastiny.orm.domain.User;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.File;
import java.io.FileFilter;
import java.sql.*;
import java.util.List;
import java.util.Map;

public class App {

    QueryRunner qr = null;
    Connection conn = null;

    @Before
    public void before() throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/chatroom", "root", "");
        qr = new QueryRunner();
    }

    /**
     * 获取数据库表中name列的值,并以List返回
     * @throws Exception
     */
    @Test
    public void testGetColumnList() throws Exception {
        List<String> ls = (List<String>) qr.query(conn, "select * from user", new ColumnListHandler("name"));
        System.out.println(ls);
    }

    /**
     * 获取返回记录的的给定字段值,如果没有给定字段则返回第一个字段的值
     * 如果返回多条记录,择取第一条记录rs.next();
     * @throws Exception
     */
    @Test
    public void testGetField() throws Exception {
        String name = (String) qr.query(conn, "select * from user", new ScalarHandler("name"));
        System.out.println(name);
    }

    /**
     * 将返回的记录以Map形式返回,【返回的map中key的值会根据执行的sql来定,如果某字段有别名则取用别名,如果没有则使用表的字段名,全部使用小写】
     * 如果返回结果包含多条记录,则取其第一条:rs.next();
     * return : {id=1, name=aa, pass=aa, addr=安徽, info=hehe, type=0}
     * @throws Exception
     */
    @Test
    public void testSelectMap() throws Exception {
//        Map map = qr.query(conn, "select * from user where id=1", new MapHandler());
        Map map = qr.query(conn, "select * from user", new MapHandler());
        System.out.println(map);
    }

    /**
     * 将每条记录转成Map并存放于List
     * 结果形式:[{key1:value1,key2:value2},{key1:value1,key2:value2}],
     * @throws Exception
     */
    @Test
    public void testSelectMapList() throws Exception {
        List<Map<String, Object>> maps = qr.query(conn, "select * from user", new MapListHandler());
        for(Map<String, Object> map : maps) {
          System.out.println(map);
        }
    }

    /**
     * 将返回记录转成指定的对象
     * 如果返回结果包含多个记录,则取其第一条:rs.next();
     * @throws Exception
     */
    @Test
    public void testSelectBean() throws Exception {
        User user = qr.query(conn, "select * from user where id=1", new BeanHandler<User>(User.class));
        System.out.println(user);
    }

    /**
     * 将每条记录转成指定的对象并存放于List中
     * @throws Exception
     */
    @Test
    public void testSelectBeanList() throws Exception {
        List<User> users = qr.query(conn, "select * from user", new BeanListHandler<User>(User.class));
        for(User user : users) {
            System.out.println(user);
        }
    }

}

DBUtils对于insert、update操作并没有很好的封装,需要根据sql指定所需的每个值(例:qr.update(conn, "UPDATE user SET NAME = ?, age = ?, address = ? WHERE id = ?", "xxx", 23, "ttt", 5); ),而不可以直接通过Bean进行insert操作。

DBUtils的使用

时间: 2024-10-19 15:00:22

DBUtils的使用的相关文章

java数据访问(2):DBUtils

导入包 <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.5</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</g

DbUtils常用API的使用 方便以后查阅

1 package com.lizhou.Test; 2 3 import java.sql.SQLException; 4 import java.util.List; 5 import java.util.Map; 6 import java.util.Map.Entry; 7 import java.util.Set; 8 9 import javax.sql.DataSource; 10 11 import org.apache.commons.dbutils.QueryRunner; 

DBUtils框架

主要知识点: 一.多表关联操作(DBUtils框架) 1.一对多关系 *** 2.多对多关系 *** 3.一对一关系 二.分页 三.监听器组件(web三大组件之一) 四.踢人综合示例(监听器实现) 一.分页核心类总结: 1.分页必要性 select * from account; 分页的结果就是要让指定的记录加载到内存 1.人的习惯 2.内存的限度(核心问题) 3.屏幕的限度 2.如何做分页? 1.数据库层面的考虑 select * from account limit startIndex,s

Apache的DBUtils框架学习

commons-dbutils简介 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. commons-dbutils API介绍: org.apache.commons.dbutils.QueryRunner QueryRunner中有update()和query()方法 org.a

Apache—DBUtils框架简介

转载自:http://blog.csdn.net/fengdongkun/article/details/8236216 Apache—DBUtils框架简介.DbUtils类.QueryRunner类 .ResultSetHandler接口 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernat

javaweb学习总结(四十一)——Apache的DBUtils框架学习

一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. commons-dbutilsAPI介绍: org.apache.commons.dbutils.QueryRunner org.apache.commons.dbutils.Resul

开源JDBC工具类DbUtils

本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUtils,而在这过程中很多都是借鉴和参考了DbUtils的代码,因此通过上一篇的学习,会让我们在对DbUtils进行更快速简单的认识. 俗话说学习一个开源的工具最好的方法就是看其官方文档,是的,在Apache官网中对DbUtils进行了详细的介绍:http://commons.apache.org/pr

Dbutils数据库增删改查

1 package com.example.day5_xutildemo; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import com.baidu.vo.Car; 7 import com.lidroid.xutils.DbUtils; 8 import com.lidroid.xutils.db.sqlite.Selector; 9 import com.lidroid.xutils.exception.DbE

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

一.DbUtils简介: DBUtils是apache下的一个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味.最容易出错的一大部分工作. 下载地址:http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi 下载上图中的红框部分,然后解压.解压之后的文件如下 : 上图中红框部分的文件就是我们所需要的内容. 二.核心方法: Db

DBUtils工具

DBUtils工具 简介 是Apache旗下的产品.是对jdbc的简单封装.提供出通用的jdbc操作方法.简化开发者使用jdbc的成本. 常用的API说明 |- QueryRunner类: 主要进行jdbc的增删改查操作. |-update(): 用于更新 |-query(): 用于查询 |- ResultSetHandler接口: 主要用于在查询操作中,封装结果集.ResultSet -> 对象 |-ArrayHandler类:把结果集的第一行记录封装成数组 |-ArrayListHandle