package com.rlovep.dbutils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; 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.MapHandler; import org.apache.commons.dbutils.handlers.ScalarHandler; import org.junit.Test; import com.rlovep.jdbc.JdbcUtil; import com.rlovep.selfDao.Admin; public class DbQuery { private Connection connection=null; @Test /** * * @Title: testsingleQuery * @Description: 自定义封装数据 * @return:void * @throws * @author peace w_peace@163.com */ public void testsingleQuery(){ String sql="select * from admin where id=?;"; //获取 connection=JdbcUtil.getConnection(); //创建Dbutils核心工具类 QueryRunner qr=new QueryRunner(); //查询 try { //将查到的数据封装一个Admin对象 //参数依次为:连接,sql语句,结果处理器,位置参数 Admin admin=qr.query(connection,sql, new ResultSetHandler<Admin>(){//结果处理器是编写 public Admin handle(ResultSet rs){//将结果进行封装 try { if(rs.next()){ Admin admin = new Admin(); admin.setId(rs.getInt("id")); admin.setUserName(rs.getString("userName")); admin.setPwd(rs.getString("pwd")); return admin; } } catch (SQLException e) { e.printStackTrace(); } return null; } },4); //输出与关闭连接 System.out.println(admin); connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } // } @Test /** * * @Title: testQueryOne * @Description: 使用组件提供的结果集对象封装数据。 * @return:void * @throws * @author peace w_peace@163.com */ public void testQueryOne(){ String sql="select * from admin where id=?"; //获取连接 connection=JdbcUtil.getConnection(); //创建Dbutils核心工具类 QueryRunner qr=new QueryRunner(); //查询返回单个对象 try { //使用beanhandle进行封装 //参数依次为:连接,sql语句,结果处理器,位置参数 //查下你结果封装到Admin Admin admin=qr.query(connection,sql, new BeanHandler<Admin>(Admin.class), 4); System.out.println(admin); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Test /** * * @Title: testArry * @Description: 测试几个有用的处理函数 * @return:void * @throws * @author peace w_peace@163.com */ public void testArry(){ String sql="select * from admin"; connection=JdbcUtil.getConnection(); QueryRunner qr=new QueryRunner(); try { //ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[] Object[] objects = qr.query(connection, sql, new ArrayHandler()); for(Object o:objects){ System.out.println(o); } System.out.println(">>>>>>>>>>>"); //ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中 List<Object[]> list = qr.query(connection, sql, new ArrayListHandler()); for(Object[] objects2:list){ for(Object o:objects2){ System.out.println(o); } } System.out.println(">>>>>>>>>>>"); //ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用) int id = qr.query(connection, sql, new ScalarHandler<>()); System.out.println(id); System.out.println(">>>>>>>>>>>"); //MapHandler 查询返回结果的第一条记录封装为map Map<String, Object> query = qr.query(connection, sql, new MapHandler()); for(String s:query.keySet()){ System.out.println(query.get(s)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }