



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第關于mybatis3中幾個@Provider的使用方式目錄一、@SelectProvider二、@InsertProvider三、@UpdateProvider四、@DeleteProviderMybatis的原身是ibatis,現在已經脫離了apache基金會,新官網是/。
Mybatis3中增加了使用注解來配置Mapper的新特性,這里主要介紹@SelectProvider、@UpdateProvider、@InsertProvider和@DeleteProvider的使用方式
這幾個注解聲明在Mapper對應的interface的方法上的,注解用于生成查詢用的sql語句。如果對應的Mapper中已使用@Param來注解參數,則在對應的Prodiver的方法中無需寫參數。
注解中的參數:
type參數指定的Class類,必須要能夠通過無參的構造函數來初始化;method參數指定的方法,必須是public的,返回值必須為String,可以為static。
一、@SelectProvider
@ResultMap注解用于從查詢結果集RecordSet中取數據然后拼裝實體bean。
publicinterfaceUserMapper{
@SelectProvider(type=SqlProvider.class,method="selectUser")
@ResultMap("userMap")
publicUsergetUser(longuserId);
}
publicclassSqlProvider{
publicStringselectUser(longuserId){
SELECT("id,name,email");
FROM("USER");
WHERE("ID=#{userId}");
}
}
上例中定義了一個Mapper接口,其中定義了一個getUser方法,這個方法根據用戶id來獲取用戶信息,并返回相應的User。
而對應的SQL語句則寫在SqlProvider類中。
二、@InsertProvider
publicinterfaceUserMapper{
@InsertProvider(type=SqlProvider.class,method="addUser")
@Options(useGeneratedKeys=true,keyProperty="id")
intaddUser(Tutortutor);
}
publicclassSqlProvider{
publicStringaddUser(Useruser){
returnnewSQL(){
{
INSERT_INTO("USER");
if(user.getName()!=null){
VALUES("NAME","#{name}");
}
if(user.getEmail()!=null){
VALUES("EMAIL","#{email}");
}
}
}.toString();
}
}
三、@UpdateProvider
publicinterfaceUserMapper{
@UpdateProvider(type=SqlProvider.class,method="updateUser")
intupdateUser(Useruser);
}
publicclassSqlProvider{
publicStringupdateUser(Useruser){
returnnewSQL(){
{
UPDATE("USER");
if(user.getName()!=null){
SET("NAME=#{name}");
}
if(user.getEmail()!=null){
SET("EMAIL=#{email}");
}
WHERE("ID=#{id}");
}
}.toString();
}
}
四、@DeleteProvider
publicinterfaceUserMapper{
@DeleteProvider(type=SqlProvider.class,method="deleteUser")
intdeleteUser(intid);
}
publicclassSqlProvider{
publicStringdeleteUser(intid){
returnnewSQL(){
{
DELETE_FROM("USER");
WHERE("ID=#{id}");
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論