zoukankan      html  css  js  c++  java
  • Dbutis

    Dbutis

    1. package cn.lining.test;   
    2.   
    3. import java.sql.Connection;   
    4. import java.sql.DriverManager;   
    5. import java.sql.SQLException;   
    6. import java.util.List;   
    7. import java.util.Map;   
    8.   
    9. import org.apache.commons.dbutils.DbUtils;   
    10. import org.apache.commons.dbutils.QueryRunner;   
    11. import org.apache.commons.dbutils.handlers.ArrayHandler;   
    12. import org.apache.commons.dbutils.handlers.ArrayListHandler;   
    13. import org.apache.commons.dbutils.handlers.BeanHandler;   
    14. import org.apache.commons.dbutils.handlers.BeanListHandler;   
    15. import org.apache.commons.dbutils.handlers.ColumnListHandler;   
    16. import org.apache.commons.dbutils.handlers.KeyedHandler;   
    17. import org.apache.commons.dbutils.handlers.MapHandler;   
    18. import org.apache.commons.dbutils.handlers.MapListHandler;   
    19. import org.apache.commons.dbutils.handlers.ScalarHandler;   
    20.   
    21. public class test {   
    22.  @SuppressWarnings("unchecked")   
    23.  public static void main(String[] args) throws ClassNotFoundException {   
    24.   
    25.   UserField userField = new UserField();   
    26.   
    27.   Connection conn = null;   
    28.   String jdbcURL = "jdbc:mysql://localhost:3306/macaw4";   
    29.   String jdbcDriver = "com.mysql.jdbc.Driver";   
    30.   try {   
    31.    DbUtils.loadDriver(jdbcDriver);   
    32.    conn = DriverManager.getConnection(jdbcURL, "root""root");   
    33.    conn.setAutoCommit(false);//关闭自动提交   
    34.    QueryRunner qRunner = new QueryRunner();   
    35.   
    36.    // 以下部分代码采用MapHandler存储方式查询   
    37.    System.out.println("***Using MapHandler***");   
    38.    Map map = (Map) qRunner.query(conn,   
    39.      "select * from mc_user_field where id = ?",   
    40.      new MapHandler(), new Object[] { "5" });   
    41.   
    42.    System.out.println("id ------------- name ");   
    43.    System.out.println(map.get("id") + "  ------------- "  
    44.      + map.get("name"));   
    45.   
    46.    // 以下部分代码采用MapListHandler存储方式查询   
    47.    System.out.println("***Using MapListHandler***");   
    48.    List lMap = (List) qRunner.query(conn,   
    49.      "select * from mc_user_field"new MapListHandler());   
    50.   
    51.    System.out.println("id ------------- name ");   
    52.    for (int i = 0; i < lMap.size(); i++) {   
    53.     Map vals = (Map) lMap.get(i);   
    54.     System.out.println(vals.get("id") + "  ------------- "  
    55.       + vals.get("name"));   
    56.    }   
    57.   
    58.    // 以下部分代码采用BeanHandler存储方式查询   
    59.    System.out.println("***Using BeanHandler***");   
    60.    userField = (UserField) qRunner.query(conn,   
    61.      "select * from mc_user_field where id = ?",   
    62.      new BeanHandler(Class.forName("cn.lining.test.UserField")),   
    63.      new Object[] { "5" });   
    64.    System.out.println("id ------------- name ");   
    65.    System.out.println(userField.getId() + "  ------------- "  
    66.      + userField.getName());   
    67.   
    68.    // 以下部分代码采用BeanListHandler存储方式查询   
    69.    System.out.println("***Using BeanListHandler***");   
    70.    List lBean = (List) qRunner.query(conn,   
    71.      "select * from mc_user_field"new BeanListHandler(Class   
    72.        .forName("cn.lining.test.UserField")));   
    73.    System.out.println("id ------------- name ");   
    74.    for (int i = 0; i < lBean.size(); i++) {   
    75.     userField = (UserField) lBean.get(i);   
    76.     System.out.println(userField.getId() + "  ------------- "  
    77.       + userField.getName());   
    78.    }   
    79.   
    80.    // 以下部分代码采用ArrayHandler存储方式查询   
    81.    System.out.println("***Using ArrayHandler***");   
    82.    Object[] array = (Object[]) qRunner.query(conn,   
    83.      "select * from mc_user_field where id = ?",   
    84.      new ArrayHandler(), new Object[] { "5" });   
    85.   
    86.    System.out.println("id ------------- name ");   
    87.    System.out.println(array[0].toString() + "  ------------- "  
    88.      + array[1].toString());   
    89.   
    90.    // 以下部分代码采用ArrayListHandler存储方式查询   
    91.    System.out.println("***Using ArrayListHandler***");   
    92.    List lArray = (List) qRunner.query(conn,   
    93.      "select * from mc_user_field"new ArrayListHandler());   
    94.    System.out.println("id ------------- name ");   
    95.    for (int i = 0; i < lArray.size(); i++) {   
    96.     Object[] var = (Object[]) lArray.get(i);   
    97.     System.out.println(var[0].toString() + "  ------------- "  
    98.       + var[1].toString());   
    99.    }   
    100.   
    101.    // 以下部分代码采用ColumnListHandler存储方式查询指定列   
    102.    System.out.println("***Using ColumnListHandler***");   
    103.    List lName = (List) qRunner.query(conn,   
    104.      "select * from mc_user_field where id = ?",   
    105.      new ColumnListHandler("name"), new Object[] { "5" });   
    106.    System.out.println("name ");   
    107.    for (int i = 0; i < lName.size(); i++) {   
    108.     String name = (String) lName.get(i);   
    109.     System.out.println(name);   
    110.    }   
    111.   
    112.    // 以下部分代码采用ScalarHandler存储方式查询   
    113.    System.out.println("***Using ScalarHandler***");   
    114.    String name = (String) qRunner.query(conn,   
    115.      "select * from mc_user_field where id = ?",   
    116.      new ScalarHandler("name"), new Object[] { "5" });   
    117.   
    118.    System.out.println("name ");   
    119.    System.out.println(name);   
    120.   
    121.    // 以下部分代码采用KeyedHandler存储方式查询   
    122.    System.out.println("***Using KeyedHandler***");   
    123.    Map<String, Map> map2 = (Map<String, Map>) qRunner.query(conn,   
    124.      "select * from mc_user_field"new KeyedHandler("name"));   
    125.   
    126.    System.out.println("name: field_name2");   
    127.    Map vals = (Map) map2.get("field_name2");   
    128.    System.out.println(vals.get("id") + "  " + vals.get("name") + "  "  
    129.      + vals.get("type"));   
    130.   
    131.    // 以下部分代码插入一条数据   
    132.    System.out.println("***Insert begin***");   
    133.    userField = new UserField();   
    134.    qRunner.update(conn, "insert into mc_user_field ("  
    135.      + "id,name,type,sort_order,required,visible)"  
    136.      + "values (?,?,?,?,?,?)"new Object[] { userField.getId(),   
    137.      userField.getName(), userField.getType(),   
    138.      userField.getSort_order(), userField.getRequired(),   
    139.      userField.getVisible() });   
    140.    System.out.println("***update end***");   
    141.   
    142.    // 以下部分代码更新一条数据   
    143.    System.out.println("***update begin***");   
    144.    userField = new UserField();   
    145.    qRunner.update(conn, "update mc_user_field set "  
    146.      + "name = ?,type = ?,sort_order = ?,"  
    147.      + "required = ?,visible = ?" + "where id = ?",   
    148.      new Object[] { userField.getName(), userField.getType(),   
    149.        userField.getSort_order(), userField.getRequired(),   
    150.        userField.getVisible(), userField.getId() });   
    151.    System.out.println("***update end***");   
    152.   
    153.    // 以下部分代码删除一条数据   
    154.    System.out.println("***delete begin***");   
    155.    userField = new UserField();   
    156.    qRunner.update(conn, "delete from mc_user_field where id2 = ?",   
    157.      new Object[] { userField.getId() });   
    158.    System.out.println("***delete end***");   
    159.   
    160.   } catch (SQLException ex) {   
    161.    ex.printStackTrace();   
    162.    try {   
    163.     System.out.println("***rollback begin***");   
    164.     DbUtils.rollback(conn);   
    165.     System.out.println("***rollback end***");   
    166.    } catch (SQLException e) {   
    167.     e.printStackTrace();   
    168.    }   
    169.   } finally {   
    170.    DbUtils.closeQuietly(conn);   
    171.   }   
    172.   
    173.  }   
    174. }  

     

    ·  ArrayHandler:把结果集中的第一行数据转成对象数组。

    ·  ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。

    ·  BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。

    ·  BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。

    ·  ColumnListHandler:将结果集中某一列的数据存放到List中。

    ·   KeyedHandler:将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里。

    ·   MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。

    ·   MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。

    ·   ScalarHandler:将结果集中某一条记录的其中某一列的数据存成Object。

     

     

     

    廖世勇
  • 相关阅读:
    CE工具里自带的学习工具--第三关
    CE工具里自带的学习工具--第二关
    CE工具里自带的学习工具--第一关
    双向链表
    双向循环链表
    单向循环链表
    单链表
    动手动脑———异常处理
    动手动脑——继承与多态
    类与对象——动手动脑
  • 原文地址:https://www.cnblogs.com/liaoshiyong/p/3150973.html
Copyright © 2011-2022 走看看