摘要:繼承機制地址實際上隱藏了一個功能可以繼承,這個在官方文檔中并沒有提到過,不過在這個里提到過。覆蓋利用的繼承機制,我們可以做到覆蓋中。
Mapper.xml繼承機制
github地址
Mybatis實際上隱藏了一個功能:Mapper.xml可以繼承,這個在官方文檔中并沒有提到過,不過在這個issue (commit)里提到過。
Statement覆蓋利用Mapper.xml的繼承機制,我們可以做到ChildMapper覆蓋ParentMapper中select、insert、delete、update。下面舉例說明:
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有效,對于sql、resultMap是無效的。
如果要在ChildMapper.xml中覆蓋這些,必須要先覆蓋ParentMapper.xml中的statement,然后讓這些statement使用新的sql、resultMap等。
下面舉例一個給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
摘要:最終能和面試官聊的開心愉快投緣的叫面霸。能夠與很好的集成提供映射標簽,支持對象與數據庫的字段關系映射提供對象關系映射標簽,支持對象關系組件維護。使用可以有效的防止注入,提高系統(tǒng)安全性。 showImg(https://segmentfault.com/img/bVbsSlt?w=358&h=269); 一、概述 面試,難還是不難?取決于面試者的底蘊(氣場+技能)、心態(tài)和認知及溝通技巧。...
摘要:優(yōu)化當我們在數據庫中增加字段時,需要在對應的實體類中增加字段,中也需要去增加字段,去維護,會消耗大量的時間我們可以讓接口去繼承,刪除接口中的所有方法,因為中都已經實現(xiàn)了。遇到這里問題不會報錯,只要注意打印出來的語句即可。 SpringBoot集成Mybatis 自動生成實體類和Mapper 1.使用IDEA創(chuàng)建一個空的SpringBoot項目 2.在pom.xml中引入以下配置 ...
摘要:建議不要在元素體內添加任何屬性值,只將屬性值定義在文件中。在文件中定義屬性名要有一定的特殊性防止覆蓋,如配置全局參數,在運行時可以調整一些運行參數。同樣需要遵守上面的規(guī)范。動態(tài)核心對語句進行靈活操作,通過表達式進行判斷,對進行靈活拼接組裝。 Hibernate與Mybatis的本質區(qū)別和應用場景 Hibernate:標準的ORM框架,不需要寫SQL語句,但是優(yōu)化和修改SQL語句比較...
摘要:緩存介紹正如大多數持久層框架一樣,同樣提供了一級緩存和二級緩存的支持一級緩存基于的本地緩存,其存儲作用域為,當或之后,該中的所有就將清空。一級緩存實現(xiàn)對的操作內部都是通過來執(zhí)行的。 MyBatis緩存介紹 正如大多數持久層框架一樣,MyBatis 同樣提供了一級緩存和二級緩存的支持 一級緩存: 基于PerpetualCache 的 HashMap本地緩存,其存儲作用域為 Se...
摘要:通過插件更優(yōu)雅地生成和的樣板代碼通過插件不污染地實現(xiàn)優(yōu)雅分頁。使用步驟引入依賴,在或的配置中進行配置。提供語法提示自動補全錯誤提示導航功能。該插件提供了類似的功能,根據接口的方法名推斷含義,然后在中直接生成對應的。 團隊使用Mybatis作為數據庫訪問框架。不同于Hibernate這種采用經典面向對象思想設計的ORM框架,Mybatis是面向過程的,它只做了過程到SQL語句的映射。兩者...
閱讀 652·2021-11-24 09:39
閱讀 3013·2021-11-23 10:06
閱讀 981·2021-10-08 10:05
閱讀 754·2019-08-30 10:49
閱讀 1719·2019-08-29 14:08
閱讀 1325·2019-08-29 12:48
閱讀 3320·2019-08-26 14:04
閱讀 3613·2019-08-26 13:50