首页 > 其他 > 详细

mybatis map

时间:2021-05-19 23:44:44      阅读:34      评论:0      收藏:0      [点我收藏+]

mybatis 万能map以及模糊查询

1、目录

技术分享图片

2、万能map

若实体类属性或者数据库中字段较多可以考虑使用map键值对的形式插入,不过目前练习的demo字段较少,体现不出来map的好处

mapper.xml:

<update id="updateUserByMap" parameterType="map">
        update user
        set name = #{userName} ,pwd=#{userPassword}
        where id=#{userId}
</update>

接口:

int updateUserByMap(Map map);

Test:

    @Test
    public void updateUserByMap (){
        SqlSession session = MybatisUtils.getSession();
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("userName","map_name1");
        map.put("userPassword","555666");
        map.put("userId","2");
        UserMapper mapper = session.getMapper(UserMapper.class);
        mapper.updateUserByMap(map);
        session.commit();
        session.close();
    }

可以看到map能够完全代替实体类进行更新操作。map中的Key对应的是sql语句#{}里的属性名,具体参数为map的value。只要parameterType设置为map且#{}与map的Key一一对应就可以

3、模糊查询

xml:

<select id="selectUserLike" resultType="entity.User" parameterType="string">
        select *
        from user
        where name like #{name}
</select>

接口:

List<User> selectUserLike(String name);

Test:

    @Test
    public void selectUser(){
    SqlSession session = MybatisUtils.getSession();
    UserMapper mapper = session.getMapper(UserMapper.class);
    List<User> users = mapper.selectUserLike("%李%");
    for (User user : users) {
        System.out.println(user);
    }

注意点:

  1. 模糊查询要在参数中添加%%

  2. 模糊查询返回的结果可能是多个,所以要用List接收

  3. 也可以在sql语句中添加%%,不过要加单引号

select *
from user
where name like ‘%#{name}%‘

4、总结

模糊查询和map传参的实际应用场景会比demo中复杂的多,特别是map,在面对诸多复杂的数据库以及属性字段时,map不失为一种奇淫巧计

mybatis map

原文:https://www.cnblogs.com/chenxiuxing/p/14786512.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!