Bootstrap

MyBatis-Map和模糊查询

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>

;