zoukankan      html  css  js  c++  java
  • mybatis返回多结果集

    一、返回Map类型

    1、如果查询的结果是一条,我们可以把查询的数据以{表字段名, 对应的值}方式存入到Map中。
    mapper 接口:
    
        //  根据 id 查询信息,并把结果信息封装成 Map 
        Map<String,Object> getUserInfo(@Param("user_id") Integer user_id);
    
    SQL 映射文件:
    
        <!-- 这里为resultType="map" -->
    	<select id="getUserInfo" resultType="map">
    		select a.*,
    		b.role_name
    		from (
    		select * from t_user where user_id= #{user_id}
    		) a
    		inner join t_role b
    		on a.role_id = b.role_id
    	</select>
    
    单元测试
    
        @Test
        public void testLogin() {
            Map<String,Object> map =userDao.getUserInfo(10086);
            map.remove("user_password");
            System.out.println(map);
        }
    
    查询结果
    

    二、多结果集

    mapper 接口:

        /**
         * 调用存储过程获取多个结果集
         * @return
         */
        List<List<?>> getTests();
    
    SQL 映射文件:
    
    	<!--调用存储过程获取多个结果集
    	"神bug 不加前面的两个横杠报错"
    	-->
        <select id="getTests" statementType="CALLABLE" resultMap="paging_list,paging_additional" >
    --
    	CALL paging_list ( '*','t_user',1 , 3 , 'faculty_id in (2) and role_id in (3)' , '',@_totalcount,@_pagecount)
    
         </select>
    
    单元测试
    
        /**
         * 测试调用存储过程获取多个结果集
         */
        @Test
        public void testGetTests(){
            List<List<?>> aa =userDao.getTests();
            System.out.println(aa.get(0));
            System.out.println(aa.get(1));
        }
    
    查询结果
    

  • 相关阅读:
    linux修改主机名
    selinux详解及配置文件
    linux磁盘分区
    识别光纤,模块
    free命令详解
    Linux系统修改网卡名(eth0-3)
    CentOS7的systemctl使用
    ELK集群
    ELK故障:elk在运行一段时间后,没有数据。
    superviosrd进程管理
  • 原文地址:https://www.cnblogs.com/shaoyu/p/11853394.html
Copyright © 2011-2022 走看看