当前位置: 移动技术网 > IT编程>开发语言>Java > 数据库操作之DBUtils

数据库操作之DBUtils

2018年10月16日  | 移动技术网IT编程  | 我要评论

概述

dbutils是java编程中的数据库操作实用工具,小巧简单实用。

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

dbutils三个核心功能介绍

  • queryrunner中提供对sql语句操作的api
  • resultsethandler接口,用于定义select操作后,怎样封装结果集
  • dbutils类,它就是一个工具类,定义了关闭资源与事务处理的方法

queryrunner核心类

  • queryrunner(datasourcr ds),提供数据源(连接池),dbutils底层自动维护连接connection
  • update(string sql,obj...params),执行更新数据
  • query(string sql,resultsethandler<t>rsh,object...panrams),执行查询

resultsethandler结果集处理类

arrayhandler:适合取1条记录,把结果集中的第一行数据转成对象数组。

arraylisthandler:适合取多条记录,把结果集中的每一行数据都转成一个对象数组,再存放到list中。

 

beanhandler:将结果集中的第一行数据封装到一个对应的javabean实例中(把每条记录封装成对象,适合取一条记录)

beanlisthandler:将结果集中的每一行数据都封装到一个对应的javabean实例中,存放到list里。//重点

maphandler:将结果集中的第一行数据封装到一个map里,key是列名,value就是对应的值。//重点

maplisthandler:将结果集中的每一行数据都封装到一个map里,然后再存放到list

columnlisthandler:将结果集中某一列的数据存放到list中。

keyedhandler(name):将结果集中的每一行数据都封装到一个map里(list<map>),再把这些map再存到一个map里,其key为指定的列。

scalarhandler:将结果集第一行的某一列放到某个对象中。//重点

    package com.oterman.dbutils;
 
    import java.sql.sqlexception;
    import java.util.list;
    import java.util.map;
 
    import org.apache.commons.dbutils.queryrunner;
    import org.apache.commons.dbutils.handlers.arrayhandler;
    import org.apache.commons.dbutils.handlers.arraylisthandler;
    import org.apache.commons.dbutils.handlers.beanhandler;
    import org.apache.commons.dbutils.handlers.beanlisthandler;
    import org.apache.commons.dbutils.handlers.maphandler;
    import org.apache.commons.dbutils.handlers.maplisthandler;
    import org.apache.commons.dbutils.handlers.scalarhandler;
    import org.junit.test;
 
    import com.mchange.v2.c3p0.combopooleddatasource;
 
    /**
     * 该程序介绍resultsethandler的各个实现类;
     * @author 大蘑菇
     *
     */
    public class rshandlerdemo {
 
        //--7.scalarhandler:将查询的结果的第一行的某一列放到一个对象中;精确定位到某个值;
        @test
        public void query7() throws sqlexception{
            
            queryrunner runner=new queryrunner(new combopooleddatasource());
            string name=(string)runner.query("select * from account",new scalarhandler(2));
            system.out.println(name);
        }
        
        //--6.maplisthandler:将查询的结果的每一行存入到一个map中,键为列名,值为各列值;然后再将map存入list中;
        @test
        public void query6() throws sqlexception{
            
            queryrunner runner=new queryrunner(new combopooleddatasource());
            list<map<string,object>> map=runner.query("select * from account",new maplisthandler());
            system.out.println(map);
        }
        
        //--5.maphandler:将查询的结果的第一行存入到一个map中,键为列名,值为各列值;
        @test
        public void query5() throws sqlexception{
            
            queryrunner runner=new queryrunner(new combopooleddatasource());
            map<string,object> map=runner.query("select * from account",new maphandler());
            system.out.println(map);
        }
        
        //--4.beanlisthandler:将查询的结果的每一行封装到一个javabean对象中,然后再将这些对象存入list中;
        @test
        public void query4() throws sqlexception{
            
            queryrunner runner=new queryrunner(new combopooleddatasource());
            list<account> list=runner.query("select * from account",new beanlisthandler<account>(account.class));
            system.out.println(list);
        }
        
        
        //--3.beanhandler:将查询的结果的第一行封装到一份javabean对象中;
        @test
        public void query3() throws sqlexception{
            
            queryrunner runner=new queryrunner(new combopooleddatasource());
            account account=runner.query("select * from account",new beanhandler<account>(account.class));
            system.out.println(account);
        }
        
        
        //--2.arraylisthandler:将查询的结果的每一行放到一个数组中,然后再将数组放到集合中;
        @test
        public void query2() throws sqlexception{
            
            queryrunner runner=new queryrunner(new combopooleddatasource());
            list<object[]> list=runner.query("select * from account",new arraylisthandler());
            system.out.println(list);
        }
        
        //--1.arrayhandler:将查询的结果的第一行放到一个数组中
        @test
        public void query1() throws sqlexception{
            
            queryrunner runner=new queryrunner(new combopooleddatasource());
            object[] array=runner.query("select * from account",new arrayhandler());
            system.out.println(array);
        }
    }

2018-10-15

 

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网