国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Mybatis Mapper.xml繼承機制

Jeffrrey / 1586人閱讀

摘要:繼承機制地址實際上隱藏了一個功能可以繼承,這個在官方文檔中并沒有提到過,不過在這個里提到過。覆蓋利用的繼承機制,我們可以做到覆蓋中。

Mapper.xml繼承機制

github地址

Mybatis實際上隱藏了一個功能:Mapper.xml可以繼承,這個在官方文檔中并沒有提到過,不過在這個issue (commit)里提到過。

Statement覆蓋

利用Mapper.xml的繼承機制,我們可以做到ChildMapper覆蓋ParentMapper中selectinsertdeleteupdate。下面舉例說明:

Interface:

@MybatisMapper
public interface ParentMapper {

  String selectFoo();

  String selectBar();
}

@MybatisMapper
public interface ChildMapper extends ParentMapper {

  String selectLoo();

}

Mapper.xml:



  

  





  
  

  

  
  

規(guī)律可以總結為:

ParentMapper.xml中有,ChildMapper.xml中沒有,ChildMapper沿用ParentMapper.xml中的定義

ParentMapper.xml中有,ChildMapper.xml中也有,ChildMapper使用ChildMapper.xml中的定義

ParentMapper.xml中沒有,ChildMapper.xml中有,ChildMapper使用ChildMapper.xml中的定義

相關代碼:Java代碼、測試代碼、配置文件

ResultMap覆蓋

Mapper.xml繼承機制只針對statement有效,對于sqlresultMap是無效的。
如果要在ChildMapper.xml中覆蓋這些,必須要先覆蓋ParentMapper.xml中的statement,然后讓這些statement使用新的sqlresultMap等。

下面舉例一個給ITEM表添加字段,但是不修改原來的ItemMapper的例子:

Model:

public class Item {

  private Integer id;
  private String title;
  // setter and getter ...
}

public class ItemEx extends Item {

  private String name;
  // setter and getter ...

}

Interface:

@MybatisMapper
public interface ItemMapper {

  Item getById(@Param("id") Long id);

}
@MybatisMapper
public interface ItemExMapper extends ItemMapper {

}

Mapper.xml:



  

  
    
  





  
  

  
    
  

相關代碼:Java代碼、測試代碼、配置文件

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70856.html

相關文章

  • 面試官都會問的Mybatis面試題,你會這樣回答嗎?

    摘要:最終能和面試官聊的開心愉快投緣的叫面霸。能夠與很好的集成提供映射標簽,支持對象與數據庫的字段關系映射提供對象關系映射標簽,支持對象關系組件維護。使用可以有效的防止注入,提高系統(tǒng)安全性。 showImg(https://segmentfault.com/img/bVbsSlt?w=358&h=269); 一、概述 面試,難還是不難?取決于面試者的底蘊(氣場+技能)、心態(tài)和認知及溝通技巧。...

    seanHai 評論0 收藏0
  • SpringBoot集成Mybatis 自動生成實體類和Mapper

    摘要:優(yōu)化當我們在數據庫中增加字段時,需要在對應的實體類中增加字段,中也需要去增加字段,去維護,會消耗大量的時間我們可以讓接口去繼承,刪除接口中的所有方法,因為中都已經實現(xiàn)了。遇到這里問題不會報錯,只要注意打印出來的語句即可。 SpringBoot集成Mybatis 自動生成實體類和Mapper 1.使用IDEA創(chuàng)建一個空的SpringBoot項目 2.在pom.xml中引入以下配置 ...

    codercao 評論0 收藏0
  • MyBatis學習筆記(二)——DAO的開發(fā)、配置文件、動態(tài)SQL

    摘要:建議不要在元素體內添加任何屬性值,只將屬性值定義在文件中。在文件中定義屬性名要有一定的特殊性防止覆蓋,如配置全局參數,在運行時可以調整一些運行參數。同樣需要遵守上面的規(guī)范。動態(tài)核心對語句進行靈活操作,通過表達式進行判斷,對進行靈活拼接組裝。 Hibernate與Mybatis的本質區(qū)別和應用場景 Hibernate:標準的ORM框架,不需要寫SQL語句,但是優(yōu)化和修改SQL語句比較...

    plus2047 評論0 收藏0
  • MyBatis緩存介紹

    摘要:緩存介紹正如大多數持久層框架一樣,同樣提供了一級緩存和二級緩存的支持一級緩存基于的本地緩存,其存儲作用域為,當或之后,該中的所有就將清空。一級緩存實現(xiàn)對的操作內部都是通過來執(zhí)行的。 MyBatis緩存介紹   正如大多數持久層框架一樣,MyBatis 同樣提供了一級緩存和二級緩存的支持   一級緩存: 基于PerpetualCache 的 HashMap本地緩存,其存儲作用域為 Se...

    mingde 評論0 收藏0
  • 【效率專精系列】善用插件提升MyBatis開發(fā)效率

    摘要:通過插件更優(yōu)雅地生成和的樣板代碼通過插件不污染地實現(xiàn)優(yōu)雅分頁。使用步驟引入依賴,在或的配置中進行配置。提供語法提示自動補全錯誤提示導航功能。該插件提供了類似的功能,根據接口的方法名推斷含義,然后在中直接生成對應的。 團隊使用Mybatis作為數據庫訪問框架。不同于Hibernate這種采用經典面向對象思想設計的ORM框架,Mybatis是面向過程的,它只做了過程到SQL語句的映射。兩者...

    Kylin_Mountain 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<