Dbutis
Dbutis
- package cn.lining.test;
 - import java.sql.Connection;
 - import java.sql.DriverManager;
 - import java.sql.SQLException;
 - import java.util.List;
 - import java.util.Map;
 - import org.apache.commons.dbutils.DbUtils;
 - import org.apache.commons.dbutils.QueryRunner;
 - import org.apache.commons.dbutils.handlers.ArrayHandler;
 - import org.apache.commons.dbutils.handlers.ArrayListHandler;
 - import org.apache.commons.dbutils.handlers.BeanHandler;
 - import org.apache.commons.dbutils.handlers.BeanListHandler;
 - import org.apache.commons.dbutils.handlers.ColumnListHandler;
 - import org.apache.commons.dbutils.handlers.KeyedHandler;
 - import org.apache.commons.dbutils.handlers.MapHandler;
 - import org.apache.commons.dbutils.handlers.MapListHandler;
 - import org.apache.commons.dbutils.handlers.ScalarHandler;
 - public class test {
 - @SuppressWarnings("unchecked")
 - public static void main(String[] args) throws ClassNotFoundException {
 - UserField userField = new UserField();
 - Connection conn = null;
 - String jdbcURL = "jdbc:mysql://localhost:3306/macaw4";
 - String jdbcDriver = "com.mysql.jdbc.Driver";
 - try {
 - DbUtils.loadDriver(jdbcDriver);
 - conn = DriverManager.getConnection(jdbcURL, "root", "root");
 - conn.setAutoCommit(false);//关闭自动提交
 - QueryRunner qRunner = new QueryRunner();
 - // 以下部分代码采用MapHandler存储方式查询
 - System.out.println("***Using MapHandler***");
 - Map map = (Map) qRunner.query(conn,
 - "select * from mc_user_field where id = ?",
 - new MapHandler(), new Object[] { "5" });
 - System.out.println("id ------------- name ");
 - System.out.println(map.get("id") + " ------------- "
 - + map.get("name"));
 - // 以下部分代码采用MapListHandler存储方式查询
 - System.out.println("***Using MapListHandler***");
 - List lMap = (List) qRunner.query(conn,
 - "select * from mc_user_field", new MapListHandler());
 - System.out.println("id ------------- name ");
 - for (int i = 0; i < lMap.size(); i++) {
 - Map vals = (Map) lMap.get(i);
 - System.out.println(vals.get("id") + " ------------- "
 - + vals.get("name"));
 - }
 - // 以下部分代码采用BeanHandler存储方式查询
 - System.out.println("***Using BeanHandler***");
 - userField = (UserField) qRunner.query(conn,
 - "select * from mc_user_field where id = ?",
 - new BeanHandler(Class.forName("cn.lining.test.UserField")),
 - new Object[] { "5" });
 - System.out.println("id ------------- name ");
 - System.out.println(userField.getId() + " ------------- "
 - + userField.getName());
 - // 以下部分代码采用BeanListHandler存储方式查询
 - System.out.println("***Using BeanListHandler***");
 - List lBean = (List) qRunner.query(conn,
 - "select * from mc_user_field", new BeanListHandler(Class
 - .forName("cn.lining.test.UserField")));
 - System.out.println("id ------------- name ");
 - for (int i = 0; i < lBean.size(); i++) {
 - userField = (UserField) lBean.get(i);
 - System.out.println(userField.getId() + " ------------- "
 - + userField.getName());
 - }
 - // 以下部分代码采用ArrayHandler存储方式查询
 - System.out.println("***Using ArrayHandler***");
 - Object[] array = (Object[]) qRunner.query(conn,
 - "select * from mc_user_field where id = ?",
 - new ArrayHandler(), new Object[] { "5" });
 - System.out.println("id ------------- name ");
 - System.out.println(array[0].toString() + " ------------- "
 - + array[1].toString());
 - // 以下部分代码采用ArrayListHandler存储方式查询
 - System.out.println("***Using ArrayListHandler***");
 - List lArray = (List) qRunner.query(conn,
 - "select * from mc_user_field", new ArrayListHandler());
 - System.out.println("id ------------- name ");
 - for (int i = 0; i < lArray.size(); i++) {
 - Object[] var = (Object[]) lArray.get(i);
 - System.out.println(var[0].toString() + " ------------- "
 - + var[1].toString());
 - }
 - // 以下部分代码采用ColumnListHandler存储方式查询指定列
 - System.out.println("***Using ColumnListHandler***");
 - List lName = (List) qRunner.query(conn,
 - "select * from mc_user_field where id = ?",
 - new ColumnListHandler("name"), new Object[] { "5" });
 - System.out.println("name ");
 - for (int i = 0; i < lName.size(); i++) {
 - String name = (String) lName.get(i);
 - System.out.println(name);
 - }
 - // 以下部分代码采用ScalarHandler存储方式查询
 - System.out.println("***Using ScalarHandler***");
 - String name = (String) qRunner.query(conn,
 - "select * from mc_user_field where id = ?",
 - new ScalarHandler("name"), new Object[] { "5" });
 - System.out.println("name ");
 - System.out.println(name);
 - // 以下部分代码采用KeyedHandler存储方式查询
 - System.out.println("***Using KeyedHandler***");
 - Map<String, Map> map2 = (Map<String, Map>) qRunner.query(conn,
 - "select * from mc_user_field", new KeyedHandler("name"));
 - System.out.println("name: field_name2");
 - Map vals = (Map) map2.get("field_name2");
 - System.out.println(vals.get("id") + " " + vals.get("name") + " "
 - + vals.get("type"));
 - // 以下部分代码插入一条数据
 - System.out.println("***Insert begin***");
 - userField = new UserField();
 - qRunner.update(conn, "insert into mc_user_field ("
 - + "id,name,type,sort_order,required,visible)"
 - + "values (?,?,?,?,?,?)", new Object[] { userField.getId(),
 - userField.getName(), userField.getType(),
 - userField.getSort_order(), userField.getRequired(),
 - userField.getVisible() });
 - System.out.println("***update end***");
 - // 以下部分代码更新一条数据
 - System.out.println("***update begin***");
 - userField = new UserField();
 - qRunner.update(conn, "update mc_user_field set "
 - + "name = ?,type = ?,sort_order = ?,"
 - + "required = ?,visible = ?" + "where id = ?",
 - new Object[] { userField.getName(), userField.getType(),
 - userField.getSort_order(), userField.getRequired(),
 - userField.getVisible(), userField.getId() });
 - System.out.println("***update end***");
 - // 以下部分代码删除一条数据
 - System.out.println("***delete begin***");
 - userField = new UserField();
 - qRunner.update(conn, "delete from mc_user_field where id2 = ?",
 - new Object[] { userField.getId() });
 - System.out.println("***delete end***");
 - } catch (SQLException ex) {
 - ex.printStackTrace();
 - try {
 - System.out.println("***rollback begin***");
 - DbUtils.rollback(conn);
 - System.out.println("***rollback end***");
 - } catch (SQLException e) {
 - e.printStackTrace();
 - }
 - } finally {
 - DbUtils.closeQuietly(conn);
 - }
 - }
 - }
 
· ArrayHandler:把结果集中的第一行数据转成对象数组。
· ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。
· BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
· BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
· ColumnListHandler:将结果集中某一列的数据存放到List中。
· KeyedHandler:将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里。
· MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
· MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。
· ScalarHandler:将结果集中某一条记录的其中某一列的数据存成Object。
    廖世勇
                    
                
                
            
        
浙公网安备 33010602011771号