Dbutil 的使用示例

lvwmj 贡献于2011-05-18

作者 番茄花园  创建于2011-04-03 05:25:00   修改者番茄花园  修改于2011-04-03 05:25:00字数6337

文档摘要:ArrayHandler:把结果集中的第一行数据转成对象数组。 <br>ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。 <br>BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。 <br>BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。 <br>ColumnListHandler:将结果集中某一列的数据存放到List中。 <br> KeyedHandler:将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里。 <br> MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。 <br> MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。 <br> ScalarHandler:将结果集中某一条记录的其中某一列的数据存成Object。
关键词:

Dbutil 的使用示例 本文转载:http://2008ningli.blog.163.com/blog/static/3699023200983102416916/ Java代码   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 map2 = (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。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档