您的位置:首页 > 其它

DBUtils框架的使用

2012-11-29 21:05 309 查看
package www.csdn.hbsi.utils;

import java.sql.SQLException;

import java.util.List;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.ArrayHandler;

import org.apache.commons.dbutils.handlers.BeanHandler;

import org.junit.Test;

import www.csdn.hbsi.bean.User;

import www.csdn.net.demo.BeanListHandler;

public class DBUtils {

@Test

public void insert() throws Exception{

/*该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。

QueryRunner类提供了两个构造方法:

默认的构造方法

需要一个 javax.sql.DataSource 来作参数的构造方法。*/

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql= "insert into users values(?,?,?,?)";

Object [] params={5,"aa","nan","1998-10-23"};

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

Object [] result = runner.query(sql,params,new ArrayHandler());

try {

runner.update(sql,params);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Test

public void update() throws Exception{

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql = "update users set name=? where id=?";

Object[] params ={"xxxx",1};

runner.update(sql, params);

}

@Test

public void delete() throws Exception{

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql = "delete from users where id=?";

runner.update(sql, 1);

}

@Test

public void find() throws Exception{

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql = "select * from users where id=?";

User user;

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

user = (User)runner.query(sql,5,new BeanHandler(User.class));

System.out.println(user.getId()+"----"+user.getName());

}

@Test

public void getAll() throws SQLException {

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql = "select * from users ";

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

List<User> list = (List<User>) runner.query(sql, new BeanListHandler(User.class));

System.out.println(list.size());

for(User user:list){

System.out.println(user.getId()+"--"+user.getName()+"---"+user.getPassword());

}

}

}

package www.csdn.hbsi.utils;

import java.sql.SQLException;

import java.util.Arrays;

import java.util.List;

import java.util.Map;

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.ColumnListHandler;

import org.apache.commons.dbutils.handlers.KeyedHandler;

import org.apache.commons.dbutils.handlers.MapListHandler;

import org.junit.Test;

public class DBUtilsdemo {

@Test

public void testArrayHandler() throws Exception{

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql = "select * from users where id=?";

Object [] params={2};

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

Object [] result =runner.query(sql,params,new ArrayHandler());

//把得到的对象转换成一个数组输出

System.out.println(Arrays.asList(result));

}@Test

public void testArrayListHandler() throws SQLException{

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql = "select * from users ";

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

List<Object[]> list =(List<Object[]>) runner.query(sql, new ArrayListHandler());

System.out.println(list.size());

}

@Test

public void testColumnListHandler() throws SQLException{

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql = "select * from users ";

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

List list = (List)runner.query(sql, new ColumnListHandler("name"));

System.out.println(list);

}

@Test

public void testKeyedListHandler() throws SQLException{

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql = "select * from users ";

//KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。

Map <Object,Map<String,Object>> map = runner.query(sql, new KeyedHandler("id"));

for(Map.Entry<Object,Map<String,Object>> me :map.entrySet()){

Map<String,Object> innerme = me.getValue();

for(Map.Entry<String,Object> entry : innerme.entrySet()){

System.out.println(entry.getKey()+"=="+entry.getValue());

}

}

}

@Test

public void testMapListHandler() throws SQLException{

QueryRunner runner = new QueryRunner(DBManage.getDataSource());

String sql = "select * from users ";

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

List<Map<String, Object>> list = runner.query(sql, new MapListHandler());

for(Map<String, Object> lists :list){

System.out.println(lists);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: