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 }
  • 相关阅读:
    c:forTokens标签循环输出
    jsp转long类型为date,并且格式化
    spring中@Param和mybatis中@Param使用区别(暂时还没接触)
    734. Sentence Similarity 有字典数组的相似句子
    246. Strobogrammatic Number 上下对称的数字
    720. Longest Word in Dictionary 能连续拼接出来的最长单词
    599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小
    594. Longest Harmonious Subsequence强制差距为1的最长连续
    645. Set Mismatch挑出不匹配的元素和应该真正存在的元素
    409. Longest Palindrome 最长对称串
  • 原文地址:https://www.cnblogs.com/chiangchou/p/dbutils-api.html
Copyright © 2011-2022 走看看