package com.softtech.dao.impl; import java.sql.Connection; import java.util.Arrays; 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.MapHandler; import org.apache.commons.dbutils.handlers.MapListHandler; import org.apache.commons.dbutils.handlers.ScalarHandler; import org.junit.Test; import com.softtech.entity.EasyBuy_User; import com.softtech.utils.JdbcUtil; public class EasyBuy_UserDaoImpl { /** * ResultSetHandler:结果集处理器,告诉DBUtils框架最终返回的结果使用何种类型来封装 * 常见的结果集处理器有以下几种: * 1.BeanHandler是处理JavaBean数据类型 * 2.MapHandler是处理Map集合类型 * 3.BeanListHandler是处理多条记录,每条记录使用JavaBean来封装 * 4.MapListHandler是处理多条记录,每条记录使用Map来封装 * 5.ArrayHandler是处理Array集合类型,导出Excel常用。 * 6.ArrayListHandler是处理多条记录,每条记录使用Array来封装,导出Excel常用。 * 7.ScalarHandler是处理单行单列的记录,比如校验用户登录是否成功。 */ private QueryRunner qr = new QueryRunner(); private Connection conn = JdbcUtil.getConn(); /** * Description:通过DBUtils添加记录。 * Author:陈杰 * * @throws Exception */ @Test public void insertEasyBuy_User() throws Exception { String sql = "INSERT INTO easybuy_user SET EU_USER_ID=?,EU_USER_NAME=?,EU_PASSWORD=?,EU_SEX=?,EU_STATUS=?"; int flag = qr.update(conn,sql, new Object[] {"JC2","JC2","123","T","1"}); System.out.println("Insert Record have "+flag+" Row."); } /** * Description:通过DBUtils-BeanHandler查询记录。 * Author:陈杰 * * @throws Exception */ @Test public void queryEasyBuy_User1() throws Exception { String sql = "SELECT EU_USER_ID,EU_BIRTHDAY,EU_STATUS from easybuy_user where EU_USER_ID='admin' order by EU_USER_ID asc"; EasyBuy_User ebu = qr.query(conn,sql,new BeanHandler<EasyBuy_User>(EasyBuy_User.class)); System.out.println(ebu); } /** * Description:通过DBUtils-MapHandler查询记录。 * Author:陈杰 * * @throws Exception */ @Test public void queryEasyBuy_User2() throws Exception { String sql = "SELECT EU_USER_ID,EU_BIRTHDAY,EU_STATUS from easybuy_user where EU_USER_ID='admin' order by EU_USER_ID asc"; Map<String,Object> ebuMap = qr.query(conn,sql,new MapHandler()); System.out.println(ebuMap); } /** * Description:通过DBUtils-BeanListHandler查询记录。 * Author:陈杰 * * @throws Exception */ @Test public void queryEasyBuy_User3() throws Exception { String sql = "SELECT EU_USER_ID,EU_BIRTHDAY,EU_STATUS from easybuy_user order by EU_USER_ID asc"; List<EasyBuy_User> ebuList = qr.query(conn,sql,new BeanListHandler<EasyBuy_User>(EasyBuy_User.class)); for(EasyBuy_User ebu:ebuList) { System.out.println(ebu); } } /** * Description:通过DBUtils-MapListHandler查询记录。 * Author:陈杰 * * @throws Exception */ @Test public void queryEasyBuy_User4() throws Exception { String sql = "SELECT EU_USER_ID,EU_BIRTHDAY,EU_STATUS from easybuy_user order by EU_USER_ID asc"; List<Map<String,Object>> mapList = qr.query(conn,sql,new MapListHandler()); for(Map<String,Object> map:mapList) { System.out.println(map); } } /** * Description:通过DBUtils-MapListHandler查询记录。 * Author:陈杰 * DbUtils.closeQuietly会关闭3个对象 * @throws Exception */ @Test public void queryEasyBuy_User5() throws Exception { String sql = "SELECT EU_USER_ID,EU_BIRTHDAY,EU_STATUS from easybuy_user order by EU_USER_ID asc"; List<Map<String,Object>> mapList = qr.query(conn,sql,new MapListHandler()); //会内部关闭3个对象(ResultSet,Statement,Connection) DbUtils.closeQuietly(conn); //打印结果 mapList.forEach((temp)-> { System.out.println(temp); }); } /** * Description:通过DBUtils-ArrayHandler查询单条记录。 * Author:陈杰 * DbUtils.closeQuietly会关闭3个对象 * @throws Exception */ @Test public void queryEasyBuy_User6() throws Exception { String sql = "SELECT EU_USER_ID,EU_BIRTHDAY,EU_STATUS from easybuy_user where EU_USER_ID='admin'"; Object[] obj = qr.query(conn,sql,new ArrayHandler()); DbUtils.closeQuietly(conn); for(Object o:obj) { System.out.println(o); } } /** * Description:通过DBUtils-ArrayHandler查询多条记录。 * Author:陈杰 * DbUtils.closeQuietly会关闭3个对象 * @throws Exception */ @Test public void queryEasyBuy_User7() throws Exception { String sql = "SELECT EU_USER_ID,EU_BIRTHDAY,EU_STATUS from easybuy_user"; List<Object[]> objList = qr.query(conn,sql,new ArrayListHandler()); DbUtils.closeQuietly(conn); objList.forEach((temp)-> { System.out.println(Arrays.deepToString(temp)); }); } /** * Description:通过DBUtils-MapHandler查询单记录。 * Author:陈杰 * DbUtils.closeQuietly会关闭3个对象 * @throws Exception */ @Test public void queryEasyBuy_User8() throws Exception { String sql = "SELECT count(*) as flag from easybuy_user where EU_USER_ID=? and eu_password=?"; Map<String,Object> map = qr.query(conn,sql,new MapHandler(),new Object[] {"admin","admin"}); DbUtils.closeQuietly(conn); Long flag = (Long) map.get("flag"); if(flag==1) { System.out.println("Login successful"); } else { System.out.println("Login failed"); } } /** * Description:通过DBUtils-MapHandler查询单记录。 * Author:陈杰 * DbUtils.closeQuietly会关闭3个对象 * @throws Exception */ @Test public void queryEasyBuy_User9() throws Exception { String sql = "SELECT count(*) as flag from easybuy_user where EU_USER_ID=? and eu_password=?"; //当结果集只有一行一列时,可以使用这个ScalarHandler。 Long flag = qr.query(conn,sql,new ScalarHandler<Long>(),new Object[] {"admin","admin"}); DbUtils.closeQuietly(conn); if(flag==1) { System.out.println("Login successful"); } else { System.out.println("Login failed"); } } }