MyBatis-使用ResultMap操作

万能Map

假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map

UserMapper:

// “万能的Map”
int addUser2(Map<String,Object> map);

UserMapper.xml:

<!--传递map的key-->
<insert id="addUser2" parameterType="map">
    insert into mybatis.user (id, name, pwd) values (#{userid},#{userName},#{password});
</insert>

UserTest:

@Test // 用Map添加用户
public void addUser2(){
    // 1.获取SqlSession
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    // 2.获取mapper,执行sql
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    Map<String, Object> map = new HashMap<>();
    map.put("userid",4);
    map.put("userName","Hello");
    map.put("password","1433223");
    mapper.addUser2(map);
    // 3.提交事物
    sqlSession.commit();
    // 4.关闭资源
    sqlSession.close();
}

Map传递参数,直接在sql中取出key即可【parameterType="map"】

对象传递参数,直接在sql中取对象的属性即可【parameterType="Object"】

只有一个基本类型参数的情况下,可以直接在sql中取到

多个参数用Map,或者注解!

模糊查询怎么写

  1. Java代码执行的时候,传递通配符%%

    List<User> userLike = mapper.getUserLike("%李%");
    
  2. 在sql拼接中使用通配符

    select * from mybatis.user where `name` like "%"#{value}"%";
    
posted @ 2023-03-05 04:11  家兴Java  阅读(39)  评论(0)    收藏  举报