MyBatis-Map和模糊查询
四、Map和模糊查询
1、万能的Map
假设实体类或者数据库中的表、字段或者参数过多,我们应当考虑使用Map!
Map添加用户:
- 编写接口
//使用map添加用户
int addUserByMap(HashMap<String,Object> map);
- 编写对应接口的sql语句
<insert id="addUserByMap" parameterType="map">
insert into mybatis.user (name, pwd) values(#{userName},#{userPwd});
</insert>
- 测试代码
//使用map添加用户
@Test
public void addUserByMap(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("userName","李四狗");
map.put("userPwd","1231");
mapper.addUserByMap(map);
sqlSession.commit();
sqlSession.close();
}
Tips:
- Map传递参数,直接在sql中取出即可 [parameterType = “map”]
- 对象传递参数,直接在sql中取对象的属性即可 [parameterType = “Object”]
- 只有一个基本类型的情况下,可以直接在sql中取到;
- 多个参数使用Map,或者注解;
2、模糊查询
1、Java代码执行的时候,传递通配符%%
List<User> userList = mapper.getUserLike("%value%")
2、在sql拼接中使用通配符
<select id="getUserLike" parameterType="String" resultType="com.lengzher.pojo.User">
select * from mybatis.user where `name` like "%"#{value}"%";
</select>