(详解)MyBatis实现多条件查询时入参的形式

本文阅读 1 分钟
首页 代码,Java 正文

MyBatis实现多条件查询时入参的形式

将查询条件封装成Java对象作为参数         举例一:

public interface sysUserMapper { 
    public List<SysUser> getUserByPojo(SysUser user);
}
<select id="getUserByPojo" resultType="cn.mybatis.pojo.SysUser">
        select * from t_sys_user where realName like concat('%',#{realName},'%')
            and roleId = #{roleId}
 </select>

        测试类:

@Test
    public void getUserByPojo(){ 
        SysUser u = new SysUser();
        u.setRealName("刘");
        u.setRoleId(1);
        List<SysUser> list = sqlSession.getMapper(sysUserMapper.class).getUserByPojo(u);
        for (SysUser user:list) { 
            System.out.println(user.getId()+"\t"+user.getRealName());
        }
        MyBatisUtil.closeSqlSession(sqlSession);
    }

        测试结果:

1    刘阳

        小结:将查询条件封装成Java对象作为入参时,sql语句参数应该使用实体类的属性名作为参数,即:#{realName},#{roleId}。

将查询条件封装成Map对象作为入参         示例二:

public List<SysUser> getUserByMap(Map<String ,Object> map);
<select id="getUserByMap" resultType="cn.mybatis.pojo.SysUser" parameterType="map">
        select * from t_sys_user where realName like concat('%',#{rname},'%')
                                   and roleId = #{rid}
 </select>

        测试类:

@Test
    public void getUserByMap(){ 
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("rname","刘");
        map.put("rid","1");
        List<SysUser> list = sqlSession.getMapper(sysUserMapper.class).getUserByMap(map);
        for (SysUser user:list) { 
            System.out.println(user.getId()+"\t"+user.getRealName());
        }
        MyBatisUtil.closeSqlSession(sqlSession);
    }

        结果:

1    刘阳

        小结:将查询条件封装成Map对象作为入参时,sql语句的参数写的是Map集合的key值。

        

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_46540738/article/details/115268019
-- 展开阅读全文 --
安全面试之XSS(跨站脚本攻击)
« 上一篇 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复