欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据库操作之DBUtils

程序员文章站 2022-06-22 11:54:02
概述 DBUtils是Java编程中的数据库操作实用工具,小巧简单实用。 DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。 DBUtils三个核心功能介绍 QueryRunner中提供对sql语句操作的API ResultSetHandler接口,用于定义select操作后, ......

概述

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