关于Mybatis多类型参数与多类型输出

Mybatis是目前国内最流行的半ORM框架,但是一般初级的使用都是使用pojo层实体类解析,若项目接口过多的情况下会造成实体类过多等问题。

以下介绍一种使用java.lang.map进行mybatis的多类型参数以及多类型输出的方法

首先数据库设计以及预备数据

Mapper.java接口

public List<Map<String,Object>> findByRowBounds(Map<String,Object> parameterMap, RowBounds rowBounds);

Mapper.xml中的mapper标签

<select id="findByRowBounds" parameterType="map" resultType="map">
        select id,role_name as roleName,note,code from t_role
        where role_name like concat('%',#{roleName},'%')
        and note like concat('%',#{note},'%')
    </select>
</mapper>

Mianjava.java程序

sqlSeesion = SqlSessionFactoryUtils.openSession();
            RoleMapper roleMapper = sqlSeesion.getMapper(RoleMapper.class);

            Map<String,Object> parameterMap= new HashMap<String,Object>();
            parameterMap.put("roleName","1");
            parameterMap.put("note","1");
            RowBounds rowBounds = new RowBounds(0,20);
            List<Map<String,Object>> roles = roleMapper.findByRowBounds(parameterMap,rowBounds);
            for(Map<String,Object> role:roles)
            {
                System.out.println("roleName:"+role.get("roleName")+" note"+role.get("note")+" code"+role.get("code"));
            }

操作结果:

DEBUG 2019-05-18 21:56:43,369 org.apache.ibatis.logging.jdbc.BaseJdbcLogger: ==> Parameters: 1(String), 1(String)
DEBUG 2019-05-18 21:56:43,409 org.apache.ibatis.logging.jdbc.BaseJdbcLogger: <==      Total: 3
roleName:1 note1 code1
roleName:1a1 note1a1 code2
roleName:1a2 note1a2 code3
DEBUG 2019-05-18 21:56:43,411 org.apache.ibatis.transaction.jdbc.JdbcTransaction: Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@33d512c1]
DEBUG 2019-05-18 21:56:43,412 org.apache.ibatis.transaction.jdbc.JdbcTransaction: Closing 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值