zoukankan      html  css  js  c++  java
  • 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;
     12 import org.apache.commons.dbutils.handlers.ArrayHandler;
     13 import org.apache.commons.dbutils.handlers.ArrayListHandler;
     14 import org.apache.commons.dbutils.handlers.BeanHandler;
     15 import org.apache.commons.dbutils.handlers.BeanListHandler;
     16 import org.apache.commons.dbutils.handlers.MapHandler;
     17 import org.apache.commons.dbutils.handlers.MapListHandler;
     18 import org.apache.commons.dbutils.handlers.ScalarHandler;
     19 
     20 import com.lizhou.Domain.Account;
     21 import com.lizhou.Util.MysqlUtil;
     22 
     23 
     24 /**
     25  * DbUtils框架的使用
     26  * 目的:减轻CURD操作
     27  * DbUtils框架最核心的类,就是QueryRunner类,构造其有空参构造和带连接池(DataSource)的构造
     28  * 
     29  * 
     30  * 
     31  * @author bojiangzhou
     32  *
     33  */
     34 public class DbUtils {
     35     
     36     public static void main(String[] args) {
     37         /**
     38          * 数据库为test,在c3p0-config.xml中配置
     39          */
     40         
     41 //        queryRunner();
     42         
     43         //下面是ResultSetHandler的接口的各种实现类的用法(7个实现类)
     44         
     45 //        beanHandler();        //针对JavaBean
     46         
     47 //        beanListHandler();    //针对JavaBean
     48         
     49 //        arrayHandler();        //针对数组
     50         
     51 //        arrayListHandler();    //针对数组
     52         
     53 //        mapHandler();        //针对Map
     54         
     55 //        mapListHandler();    //针对Map
     56         
     57         scalarHandler();    //针对Long
     58         
     59     }
     60     
     61     //QueryRunner
     62     public static void queryRunner(){
     63         //获取连接池
     64         DataSource ds = MysqlUtil.getPool();
     65         //用连接池构造一个QueryRunner
     66         QueryRunner qr = new QueryRunner(ds);
     67         
     68 //        String sql = "update account set name=? where id=?";
     69         String sql = "insert into account(name, money) values(?, ?)";
     70         
     71         try {
     72 //            qr.update(sql, new Object[]{"O(∩_∩)O哈哈~", 2});
     73             qr.update(sql, new Object[]{"一生有你", 25000});
     74         } catch (SQLException e) {
     75             // TODO Auto-generated catch block
     76             e.printStackTrace();
     77         }
     78     }
     79     
     80     //BeanHandler
     81     public static void beanHandler(){
     82         QueryRunner qr = new QueryRunner(MysqlUtil.getPool());
     83         
     84         String sql = "select * from account where id = ?";
     85         
     86         try {
     87             Account acc = (Account) qr.query(sql, new Object[]{3}, new BeanHandler(Account.class));
     88             System.out.println(acc.getId()+"    "+acc.getName()+"    "+acc.getMoney());
     89         } catch (SQLException e) {
     90             e.printStackTrace();
     91         }
     92         
     93     }
     94     
     95     //BeanListHandler
     96     public static void beanListHandler(){
     97         QueryRunner qr = new QueryRunner(MysqlUtil.getPool());
     98         
     99         String sql = "select * from account";
    100         
    101         try {
    102             List<Account> accounts =  (List<Account>) qr.query(sql, new BeanListHandler(Account.class));
    103             for(Account a : accounts){
    104                 System.out.println(a.getId()+"    "+a.getName()+"    "+a.getMoney());
    105             }
    106         } catch (SQLException e) {
    107             e.printStackTrace();
    108         }
    109     }        
    110     
    111     //ArrayHandler
    112     public static void arrayHandler(){
    113         QueryRunner qr = new QueryRunner(MysqlUtil.getPool());
    114         
    115         String sql = "select * from account where money=?";
    116         
    117         try {
    118             Object[] a = (Object[]) qr.query(sql, 10000, new ArrayHandler()); 
    119             for(int i = 0;i < a.length;i++){
    120                 System.out.print(a[i]+"    ");
    121             }
    122             System.out.println("
    ------------------------------");
    123         } catch (SQLException e) {
    124             e.printStackTrace();
    125         }
    126     }    
    127     
    128     //ArrayListHandler
    129     public static void arrayListHandler(){
    130         QueryRunner qr = new QueryRunner(MysqlUtil.getPool());
    131         
    132         String sql = "select * from account";
    133         
    134         try {
    135              List<Object[]> accounts = (List<Object[]>) qr.query(sql, new ArrayListHandler()); 
    136             for(Object[] obj : accounts){
    137                 for(int i = 0;i < obj.length;i++){
    138                     System.out.print(obj[i]+"    ");
    139                 }
    140                 System.out.println("
    ------------------------------");
    141             }
    142         } catch (SQLException e) {
    143             e.printStackTrace();
    144         }
    145     }    
    146     
    147     //MapHandler
    148     public static void mapHandler(){
    149         QueryRunner qr = new QueryRunner(MysqlUtil.getPool());
    150         
    151         String sql = "select * from account";
    152         
    153         try {
    154              Map<Object, Object> map = (Map<Object, Object>) qr.query(sql, new MapHandler());
    155              Set<Entry<Object, Object>> entry = map.entrySet();
    156              for(Entry e : entry){
    157                  System.out.print(e.getKey()+"    ");
    158                  System.out.println(e.getValue());
    159              }
    160         } catch (SQLException e) {
    161             e.printStackTrace();
    162         }
    163     }    
    164     
    165     //MapListHandler
    166     public static void mapListHandler(){
    167         QueryRunner qr = new QueryRunner(MysqlUtil.getPool());
    168         
    169         String sql = "select * from account";
    170         
    171         try {
    172              List< Map<Object, Object> > maps = (List<Map<Object, Object>>) qr.query(sql, new MapListHandler());
    173              for(Map<Object, Object> map : maps){
    174                  Set<Entry<Object, Object>> entry = map.entrySet();
    175                  for(Entry e : entry){
    176                      System.out.print(e.getKey()+"    ");
    177                      System.out.println(e.getValue());
    178                  }
    179                  System.out.println("-------------------------");
    180              }
    181              
    182         } catch (SQLException e) {
    183             e.printStackTrace();
    184         }
    185     }    
    186     
    187     
    188     //ScalarHandler 只返回一行一列数据
    189     public static void scalarHandler(){
    190         QueryRunner qr = new QueryRunner(MysqlUtil.getPool());
    191         
    192         String sql = "select count(*) from account";
    193         
    194         try {
    195              Object obj = qr.query(sql, new ScalarHandler());
    196              System.out.println(obj);
    197         } catch (SQLException e) {
    198             e.printStackTrace();
    199         }
    200     }    
    201     
    202 }
  • 相关阅读:
    【前端大神面考面试官系列】入门Vue全家桶
    【综合篇】浏览器的工作原理:浏览器幕后揭秘
    【星云测试】开发者测试(2)-采用精准测试工具对J2EE Guns开发框架进行测试
    【星云测试】开发者测试(3)-采用精准测试工具对springcloud微服务应用进行穿透测试
    【星云测试】开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试
    【星云测试】精准测试的软件产品质量效率变化分析
    巧用location.hash保存页面状态
    全面解析ASP.NET MVC模块化架构方案
    在多线程编程中lock(string){...}隐藏的机关
    注释是恶魔,请不要再写一行注释
  • 原文地址:https://www.cnblogs.com/chiangchou/p/dbutils-api.html
Copyright © 2011-2022 走看看