zoukankan      html  css  js  c++  java
  • DBUtils1

    概述

    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);
            }
        }
  • 相关阅读:
    CODING x 百果园 _ 水果零售龙头迈出 DevOps 体系建设第一步
    Nocalhost 亮相 CD Foundation 国内首届 Meetup,Keith Chan 将出席致辞
    做云原生时代标准化工具,实现高效云上研发工作流
    打造数字化软件工厂 —— 一站式 DevOps 平台全景解读
    WePack —— 助力企业渐进式 DevOps 转型
    CODING Compass —— 打造行云流水般的软件工厂
    Nocalhost —— 让云原生开发回归原始而又简单
    CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全
    Nocalhost:云原生开发新体验
    使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller
  • 原文地址:https://www.cnblogs.com/sy130908/p/11602180.html
Copyright © 2011-2022 走看看