1. 程式人生 > 其它 >mybatis學習04:Map和模糊查詢

mybatis學習04:Map和模糊查詢

mybatis學習04:Map和模糊查詢

  • 萬能Map:

    • 假設,我們的實體類,或者資料庫中的表,欄位或者引數過多,我們應當考慮使用Map!

    • Map傳遞引數,直接在SQL中取出key即可;parameterType="map"

    • 物件傳遞引數,直接在SQL中取物件的屬性即可!parameterType="Object"

    • 只有一個基本型別的引數的情況下,可以直接在SQL中取到!parameterType="int"(可以省略)

    • 多個引數用Map,或者註解!

      //萬能Map
      int addUser2(Map<String,Object> map);
    • Mapper.xml

      <!--
         傳遞map的key
      -->
      <insert id="addUser2" parameterType="map">
        insert into mybatis.user(id, name, pwd) value (#{userId},#{userName},#{password})
      </insert>
    • Test

      @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","demo4");
         map.put("password","111111");
         int i = mapper.addUser2(map);
         if(i>0){
             System.out.println("刪除成功");
             sqlSession.commit();//刪除成功,提交事務
        }
         sqlSession.close();
      }

 

  • 模糊查詢:

    • 1,Java程式碼執行的時候,傳遞萬用字元: %

      map.put("userName","%demo%");
      select * from mybatis.user where name like #{userName}
    • 2,在SQL拼接中使用萬用字元:%

      map.put("userName","demo");
      select * from mybatis.user where name like "%"#{userName}"%"