mybatis map
Posted 陈修行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis map相关的知识,希望对你有一定的参考价值。
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);
}
注意点:
-
模糊查询要在参数中添加%%
-
模糊查询返回的结果可能是多个,所以要用List接收
-
也可以在sql语句中添加%%,不过要加单引号
select *
from user
where name like \'%#{name}%\'
4、总结
模糊查询和map传参的实际应用场景会比demo中复杂的多,特别是map,在面对诸多复杂的数据库以及属性字段时,map不失为一种奇淫巧计
以上是关于mybatis map的主要内容,如果未能解决你的问题,请参考以下文章