DBUtils知识:
http://blog.csdn.net/farreaching665/article/details/7101132
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。
注:本文转自http://seara520.blog.163.com/blog/static/1681276982010616114728453/
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。
注:本文转自http://seara520.blog.163.com/blog/static/1681276982010616114728453/