程序员社区

MyBatis中万能的Map和模糊查询

文章目录

        • 1.假设实体类或者数据库中的表的字段过多,应当考虑使用Map
        • 2.使用Map,可以不用把表的属性全写出来,只要写需要的属性
        • 3.模糊查询
  1. Map传递参数,直接在sql中取出key即可
  2. 对象传递参数,直接在sql中取对象的属性即可
  3. 一个基本类型传递参数,直接在sql中取到

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

1.编写接口:

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

2.编写接口的实现类:

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

3.编写测试类:

@Test
 public void addUser2(){
     SqlSession sqlSession = MyBatisUtils.getSqlSession();
     UserMapper mapper = sqlSession.getMapper(UserMapper.class);
     Map<String, Object> map = new HashMap<String, Object>();
     //根据键存值
     map.put("userid",4);
     map.put("username","郑爽");
     map.put("password","123");
     int count = mapper.addUser2(map);
     if(count>0){
         System.out.println("添加成功");
     }
     sqlSession.close();
 }

2.使用Map,可以不用把表的属性全写出来,只要写需要的属性

1.编写接口:

//万能的Map
User getUserById2(Map<String,Object> map);

2.编写接口的实现类:

<!--使用Map,可以不用把表中的属性全部写出来只需要需要的属性-->
<select id="getUserById2" parameterType="map" resultType="com.kuang.pojo.User">
 	 select * from mybatis.user where id=#{userid}
</select>

3.编写测试类:

@Test
  public void getUserById2(){
      SqlSession sqlSession = MyBatisUtils.getSqlSession();
      UserMapper mapper = sqlSession.getMapper(UserMapper.class);
      Map<String, Object> map = new HashMap<String, Object>();
      map.put("userid",3);
      User user = mapper.getUserById2(map);
      System.out.println(user);
      sqlSession.close();
  }

3.模糊查询

1.编写接口:

//模糊查询用户
List<User> getUserLike(String value);

2.编写接口实现类

  <select id="getUserLike" resultType="com.kuang.pojo.User">
        select * from mybatis.user where name like #{value}
    </select>

3.编写测试类:

@Test
 public void getUserLike(){
     SqlSession sqlSession = MyBatisUtils.getSqlSession();
     UserMapper mapper = sqlSession.getMapper(UserMapper.class);
     List<User> userList = mapper.getUserLike("%李%");
     for(User user:userList){
         System.out.println(user);
     }
     sqlSession.close();
 }

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MyBatis中万能的Map和模糊查询

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区