詳解Mybatis註解寫法 附10餘個常用例子

2022-10-03 12:06:11 字數 1909 閱讀 5471

【前言】

mybatis 除了 xml 配置寫法,還可以使用註解寫法。

首先需要引入 mybatis 的依賴:

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.2

tk.mybatis

mapper-spring-boot-starter

1.1.3

然後在介面上打上對應 @mapper 註解

下面是常用的 myatis 註解寫法:

新增物件( 非自增 id )

插入的時候,資料庫的值字段會自動匹配物件中同名稱屬性的值。

@insert(value = , #, #, #)" })

public void adduser(user user);

新增物件( 自增 id )

如果資料庫user表的 id 是自增長,我們可以加上 @options 註解,那麼該物件在插入後,id 屬性會自動獲取到主鍵。

@options(usegeneratedkeys=true, keyproperty="id") 其中的 id 對應資料庫表中的主鍵字段。

@insert(value = , #, #)" })

@options(usegeneratedkeys=true, keyproperty="id")

public void insertuser(user user);

根據 id 查詢物件

@param(value = "id") 其中的 id 對應 sql 語句中的 #

@select("select * from user where id = #")

public user getuserbyid(@param(value = "id") long id)程式設計客棧;

在查詢物件的過程中,表字段會自動裝箱給同名屬性。當然,也可以寫成繫結形式。

如下:@result 註解中 property 是物件字段,column 是表字段。

@select("select * from user where id = #")

@results()

public user getuserbyid(@param(value = "id") long id);

大於 ( > ) 查詢

在sql 語句中,直接寫作 > ,但在 xml 中,大於通常用轉義 > 替代 ( xml 寫法介紹詳見 6.2)。

@select("select * from user where age > #")

public list getuserlist(@param(value = "age") integer age);

小於 ( < ) 查詢

在sql 語句中,直接寫作 < ,但在 xml 中,小於通常用轉義 < 替代  ( xml 寫法介紹詳見 6.2)。

@select("select * from user where age < #")

public list程式設計客棧 getuserlist(@param(value = "age") integer age);

in 關鍵字查詢

(6.1)帶 in 的子查詢

@select("select * from user where id in (select id from user where name = #)")

public list getuserlist(@param(value = "name") string name);

(6.2)帶 in 的集合查詢

list 集合,set集合,陣列 都適用。

注意:@select() 這種寫法為 xml 方式寫法。所有 sql 都在 這對標籤之中,標籤之外是一對大括號,"})

public list getuserlist(@param(value = "ids") list ids);

mybatis 寫法技巧

1.trim prefix prefixoverrides suffix suffixoverrides 通常用法 例子1 1 以字元 where 覆蓋首個 and 或 or 字元 select from user id and deleteflag 0 等效於 select from user i...

Mybatis 註解形式

1.查詢 查詢 select select id,name,type,numbers,cancelled,completed,percentage from customer list listselectcustomerlistall 多表聯查 所有的關聯實體類必須引入此註解 jsonignore...

mybatis 常用sql寫法

1.mybatis 迴圈string 用逗號隔開的字串 兩種寫法 listidlist2 getuserids useridlist string userids string.join idlist map.put userids userids select t1.id id,t1.channe...