DBUtils框架的使用

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); 

 }

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值