MyBatis使用Map與模糊查詢的方法示例

當我們的實體類、或者數據庫裡的表、字段或者參數很多,這個時候考慮使用map

一、使用map傳參插入數據

1.編寫Dao接口/Mapper層 使用Map做參數

 //Dao接口/Mapper層 使用Map傳參
    int addUser2(Map<String,Object> map);

2.編寫Mapper.xml中的sql語句

<!--    傳遞map的key-->
    <insert id="addUser2" parameterType="map">
        insert into firend_mq.users (id,username,password) value (#{userid},#{name},#{pwd})
    </insert>

3.編寫測試類

 //使用map傳參添加插入
    @Test
    public void addUser2(){

        SqlSession sqlSession = Mybatisutil.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        Map<String, Object> map = new HashMap<String, Object>();

        map.put("userid",4);
        map.put("name","好人");
        map.put("pwd",1111111);

        mapper.addUser2(map);
        sqlSession.commit();
        sqlSession.close();
    }

使用Map傳參也可以批量插入數據

MyBatis 批量插入/修改/刪除數據(MySql)

二、使用map修改數據

當我們的實體類、或者數據庫裡的表、字段或者參數很多的時候,使用一般的實體類傳參,就需要將所有的字段全部寫入,顯然太過於繁瑣,這時候使用map傳入你需要更改的字段就行

代碼大致相似就不放代碼瞭。。。

三、模糊查詢

1.方式一:java代碼執行的時候,傳遞通配符% %

List<User> likelist = mapper.getUserlike("%毛%");

2.方式二:在Mapper.xml中的sql拼接中使用通配符

select * from firend_mq.users where username like "%"#{value}"%" 

實現結果:

總結:

  • Map傳遞參數,直接寫sql語句中取出即可 {parameterType=“map”}
    優點可以在取參數#{value}的時候可以DIY,直接使用自己傳入的key值
  • 對象傳遞參數,直接在sql中取對象的屬性即可 {parameterType=“Object”}
    但是必須和實體類名字一致
  • 隻有一個基本類型參數的情況下,可以直接在sql中取到
  • 多個參數用Map,或者註解

到此這篇關於MyBatis使用Map與模糊查詢的文章就介紹到這瞭,更多相關MyBatis用Map與模糊查詢內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!