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 }
  • 相关阅读:
    Open source cryptocurrency exchange
    Salted Password Hashing
    95. Unique Binary Search Trees II
    714. Best Time to Buy and Sell Stock with Transaction Fee
    680. Valid Palindrome II
    Java compiler level does not match the version of the installed Java project facet.
    eclipse自动编译
    Exception in thread "main" java.lang.StackOverflowError(栈溢出)
    博客背景美化——动态雪花飘落
    java九九乘法表
  • 原文地址:https://www.cnblogs.com/chiangchou/p/dbutils-api.html
Copyright © 2011-2022 走看看