成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Mybatis Mapper.xml繼承機(jī)制

Jeffrrey / 1606人閱讀

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

Mapper.xml繼承機(jī)制

github地址

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

Statement覆蓋

利用Mapper.xml的繼承機(jī)制,我們可以做到ChildMapper覆蓋ParentMapper中select、insert、delete、update。下面舉例說(shuō)明:

Interface:

@MybatisMapper
public interface ParentMapper {

  String selectFoo();

  String selectBar();
}

@MybatisMapper
public interface ChildMapper extends ParentMapper {

  String selectLoo();

}

Mapper.xml:



  

  





  
  

  

  
  

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

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

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

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

相關(guān)代碼:Java代碼、測(cè)試代碼、配置文件

ResultMap覆蓋

Mapper.xml繼承機(jī)制只針對(duì)statement有效,對(duì)于sqlresultMap是無(wú)效的。
如果要在ChildMapper.xml中覆蓋這些,必須要先覆蓋ParentMapper.xml中的statement,然后讓這些statement使用新的sql、resultMap等。

下面舉例一個(gè)給ITEM表添加字段,但是不修改原來(lái)的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:



  

  
    
  





  
  

  
    
  

相關(guān)代碼:Java代碼、測(cè)試代碼、配置文件

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70856.html

相關(guān)文章

  • 面試官都會(huì)問(wèn)的Mybatis面試題,你會(huì)這樣回答嗎?

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

    seanHai 評(píng)論0 收藏0
  • SpringBoot集成Mybatis 自動(dòng)生成實(shí)體類和Mapper

    摘要:優(yōu)化當(dāng)我們?cè)跀?shù)據(jù)庫(kù)中增加字段時(shí),需要在對(duì)應(yīng)的實(shí)體類中增加字段,中也需要去增加字段,去維護(hù),會(huì)消耗大量的時(shí)間我們可以讓接口去繼承,刪除接口中的所有方法,因?yàn)橹卸家呀?jīng)實(shí)現(xiàn)了。遇到這里問(wèn)題不會(huì)報(bào)錯(cuò),只要注意打印出來(lái)的語(yǔ)句即可。 SpringBoot集成Mybatis 自動(dòng)生成實(shí)體類和Mapper 1.使用IDEA創(chuàng)建一個(gè)空的SpringBoot項(xiàng)目 2.在pom.xml中引入以下配置 ...

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

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

    plus2047 評(píng)論0 收藏0
  • MyBatis緩存介紹

    摘要:緩存介紹正如大多數(shù)持久層框架一樣,同樣提供了一級(jí)緩存和二級(jí)緩存的支持一級(jí)緩存基于的本地緩存,其存儲(chǔ)作用域?yàn)?,?dāng)或之后,該中的所有就將清空。一級(jí)緩存實(shí)現(xiàn)對(duì)的操作內(nèi)部都是通過(guò)來(lái)執(zhí)行的。 MyBatis緩存介紹   正如大多數(shù)持久層框架一樣,MyBatis 同樣提供了一級(jí)緩存和二級(jí)緩存的支持   一級(jí)緩存: 基于PerpetualCache 的 HashMap本地緩存,其存儲(chǔ)作用域?yàn)?Se...

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

    摘要:通過(guò)插件更優(yōu)雅地生成和的樣板代碼通過(guò)插件不污染地實(shí)現(xiàn)優(yōu)雅分頁(yè)。使用步驟引入依賴,在或的配置中進(jìn)行配置。提供語(yǔ)法提示自動(dòng)補(bǔ)全錯(cuò)誤提示導(dǎo)航功能。該插件提供了類似的功能,根據(jù)接口的方法名推斷含義,然后在中直接生成對(duì)應(yīng)的。 團(tuán)隊(duì)使用Mybatis作為數(shù)據(jù)庫(kù)訪問(wèn)框架。不同于Hibernate這種采用經(jīng)典面向?qū)ο笏枷朐O(shè)計(jì)的ORM框架,Mybatis是面向過(guò)程的,它只做了過(guò)程到SQL語(yǔ)句的映射。兩者...

    Kylin_Mountain 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<