Mapper整合擴充套件通用介面

2021-08-28 15:15:27 字數 990 閱讀 8916

專案中提供了大量現成的方法,這些方法可以作為擴充套件時的參考。

例如selectall方法。

首先定義介面:

/*** 查詢全部結果

** @return

*/@selectprovider(type = myselectprovider.class, method = "dynamicsql")

listselectall();}

}/**

* 查詢全部結果

** @param ms

* @return

*/final class<?> entityclass = getentityclass(ms);

//修改返回值型別為實體型別

setresulttype(ms, entityclass);

stringbuilder sql = new stringbuilder();

return sql.tostring();

}}在 selectall 方法中,首先是獲取了當前介面的實體型別:

final class<?> entityclass = getentityclass(ms);
因為介面返回值型別為list,mybatis 會認為返回值型別為list,這和我們想要的實體型別不一樣,所以下一行**就是設定返回值型別:

setresulttype(ms, entityclass);
注意,只有返回 t 或者 list 時需要設定,返回 int 型別時不需要設定。

接下來就是純粹的拼接 xml 形式的 sql 了。

//select col1,col2...

//from tablename - 支援動態表名

//order by ***

這是其中最簡單的乙個方法實現。當你想要實現某種方法時,可以從已有的例子中找乙個最接近的方法,在此基礎上進行修改。

Springboot整合通用Mapper

建立springboot專案 1.在新建專案中勾選下面幾個依賴 lombok不是整合必須的 alibaba的druid資料庫連線池 com.alibaba druid spring boot starter 1.1.21 tk.mybatis 2.1.5 component server port ...

筆記 通用Mapper

需要使用包裝型別,不能使用基本資料型別。由於基本型別都有預設值,會導致mabatis在執行相關操作的時候很難判斷當前字段是否為null,所以mybatis環境下盡量不要使用基本資料型別。int預設0,double預設0.0 public inte ce extends serviceimpl aut...

神器 通用Mapper

極其方便的使用mybatis單錶的增刪改查。支援單錶操作,不支援通用的多表聯合查詢。我個人最早用 mybatis 時,先是完全手寫,然後用上了 mybatis 生成器 簡稱為 mbg 在使用 mbg 過程中,發現乙個很麻煩的問題,如果資料庫字段變化很頻繁,就需要反覆重新生成 並且由於 mbg 覆蓋生...