【前言】
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...