日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

一篇聊聊Mybatis插件開發(fā)

來源: 責(zé)編: 時(shí)間:2023-09-21 20:48:26 392觀看
導(dǎo)讀Mybatis的插件,主要用于在執(zhí)行sql前后,對sql進(jìn)行封裝加工,或者在sql執(zhí)行后,對數(shù)據(jù)進(jìn)行加工處理。常用于一些公共數(shù)據(jù)操作處理,例如:分頁插件,在執(zhí)行sql查詢前增加分頁參數(shù)多租戶系統(tǒng)中,增加租戶ID參數(shù)。增加更新時(shí)間、創(chuàng)建時(shí)

Mybatis的插件,主要用于在執(zhí)行sql前后,對sql進(jìn)行封裝加工,或者在sql執(zhí)行后,對數(shù)據(jù)進(jìn)行加工處理。常用于一些公共數(shù)據(jù)操作處理,例如:ia528資訊網(wǎng)——每日最新資訊28at.com

  1. 分頁插件,在執(zhí)行sql查詢前增加分頁參數(shù)
  2. 多租戶系統(tǒng)中,增加租戶ID參數(shù)。
  3. 增加更新時(shí)間、創(chuàng)建時(shí)間、更新人、創(chuàng)建人的參數(shù)信息。
  4. 數(shù)據(jù)權(quán)限中,增加參數(shù)查詢。

插件開發(fā)過程

確定需要攔截的簽名

指定需要攔截的方法,通過方法簽名來指定,方法簽名即指定哪個(gè)類的哪個(gè)方法+方法參數(shù)。這里的類不能隨便寫,只能從以下幾個(gè)類中選,也就是說,MyBatis 插件可以攔截四大對象中的任意一個(gè)。ia528資訊網(wǎng)——每日最新資訊28at.com

  • Executor 是執(zhí)行 SQL 的全過程,包括組裝參數(shù),組裝結(jié)果集返回和執(zhí)行 SQL 過程,都可以攔截。
  • StatementHandler 是執(zhí)行 SQL 的過程,我們可以重寫執(zhí)行 SQL 的過程。
  • ParameterHandler 是攔截執(zhí)行 SQL 的參數(shù)組裝,我們可以重寫組裝參數(shù)規(guī)則。
  • ResultSetHandler 用于攔截執(zhí)行結(jié)果的組裝,我們可以重寫組裝結(jié)果的規(guī)則。

我們來看以下mybatisplus的插件配置的簽名:ia528資訊網(wǎng)——每日最新資訊28at.com

@Intercepts(    {        @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class}),        @Signature(type = StatementHandler.class, method = "getBoundSql", args = {}),        @Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}),        @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class}),        @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class}),    })public class MybatisPlusInterceptor implements Interceptor {//...}

type指定四大類型中的任意一個(gè),method指定攔截類型中方法,args指定方法參數(shù)。例如:ia528資訊網(wǎng)——每日最新資訊28at.com

@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})

指定了攔截StatementHandler的prepare方法,方法有兩個(gè)參數(shù),一個(gè)是Connection類型,另一個(gè)是Integer類型。ia528資訊網(wǎng)——每日最新資訊28at.com

public interface StatementHandler {  Statement prepare(Connection connection, Integer transactionTimeout)      throws SQLException;            //....      }

插件接口定義

在 MyBatis 中開發(fā)插件,需要實(shí)現(xiàn) Interceptor 接口。接口的定義如下:ia528資訊網(wǎng)——每日最新資訊28at.com

public interface Interceptor {   Object intercept(Invocation invocation) throws Throwable;   Object plugin(Object target);   void setProperties(Properties properties); }
  • intercept 方法:它將直接覆蓋你所攔截對象原有的方法,因此它是插件的核心方法。通過 invocation 參數(shù)可以反射調(diào)度原來對象的方法。
  • plugin 方法:target 是被攔截對象,它的作用是給被攔截對象生成一個(gè)代理對象,并返回它。為了方便 MyBatis 使用 org.apache.ibatis.plugin.Plugin 中的 wrap 靜態(tài)方法提供生成代理對象。
  • setProperties 方法:允許在 plugin 元素中配置所需參數(shù),方法在插件初始化的時(shí)候就被調(diào)用了一次,然后把插件對象存入到配置中,以便后面再取出。

實(shí)現(xiàn)插件

創(chuàng)建個(gè)類實(shí)現(xiàn)Interceptor接口,并且在實(shí)現(xiàn)類上指定方法簽名即可。ia528資訊網(wǎng)——每日最新資訊28at.com

最后需要在mybatis配置文件中配置插件ia528資訊網(wǎng)——每日最新資訊28at.com

<plugins>        <plugin interceptor="com.yjw.demo.mybatis.common.page.PageInterceptor">        </plugin>    </plugins>

最后建議看一下MybatisPlusInterceptor的實(shí)現(xiàn),里面還使用到了責(zé)任鏈設(shè)計(jì)模式。ia528資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-10908-0.html一篇聊聊Mybatis插件開發(fā)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 一起聊聊GraalVM for JDK 21

下一篇: C++函數(shù)式編程:提高代碼表達(dá)力和可維護(hù)性

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
一区视频在线| 国产精品久久久久久亚洲调教| 香蕉久久精品日日躁夜夜躁| 亚洲女人av| 久久成年人视频| 久久天堂国产精品| 欧美黄色免费| 国产精品va| 国产午夜精品久久| 亚洲国产欧美不卡在线观看| 99视频一区| 欧美影院成年免费版| 久久亚洲一区| 欧美三级资源在线| 国内精品一区二区| 亚洲精品国产精品国产自| av不卡在线| 久久激情五月激情| 欧美激情精品久久久久久大尺度| 欧美先锋影音| 欧美一区二区三区免费看| 欧美激情综合五月色丁香小说| 国产精品露脸自拍| 在线精品观看| 亚洲欧美国产高清| 欧美承认网站| 国产亚洲a∨片在线观看| 亚洲精品久久久一区二区三区| 午夜精品久久久久久久久久久久久| 久久综合色一综合色88| 国产精品久久久久久久久久三级| 国产主播精品在线| 日韩视频欧美视频| 久久精品国产清自在天天线| 欧美连裤袜在线视频| 国产一区二区日韩精品欧美精品| 99国产精品| 久久免费视频一区| 国产精品初高中精品久久| 在线视频观看日韩| 欧美在线免费视频| 国产精品第一区| 亚洲精品在线观看视频| 久久激情视频免费观看| 国产精品国产三级国产普通话三级| 在线观看国产精品淫| 亚洲主播在线观看| 欧美精品在线极品| 在线看日韩av| 久久成人免费视频| 国产精品久久国产愉拍| 亚洲精品日本| 嫩草影视亚洲| 好吊妞这里只有精品| 亚洲一区二区三区高清不卡| 欧美成人免费一级人片100| 国产欧美精品一区| 一区二区三区视频在线看| 日韩午夜高潮| 免费日韩精品中文字幕视频在线| 国产欧美综合在线| 亚洲性视频网站| 欧美精品色综合| 亚洲国产欧美日韩精品| 久久亚洲影音av资源网| 国产一区二区主播在线| 午夜在线一区| 国产精品手机在线| 亚洲在线观看视频网站| 国产精品成人国产乱一区| 日韩视频一区二区三区| 欧美激情第1页| 亚洲茄子视频| 欧美国产专区| 在线观看一区| 麻豆亚洲精品| 在线观看av一区| 另类综合日韩欧美亚洲| 在线成人h网| 久久综合九九| 亚洲国产精品999| 模特精品在线| 亚洲欧洲日夜超级视频| 欧美激情乱人伦| 亚洲人在线视频| 欧美日韩1080p| 一区二区三区四区五区在线| 欧美日韩国语| 亚洲一区激情| 国产伦精品一区二区三| 欧美一区亚洲二区| 韩日成人av| 美女黄毛**国产精品啪啪| 亚洲福利在线看| 欧美精品在线免费| 亚洲无线视频| 国产欧美欧美| 久久久久久久久伊人| 在线观看成人av| 欧美fxxxxxx另类| 99国产精品久久久久久久成人热| 欧美日韩影院| 先锋影音一区二区三区| 黄色成人在线| 欧美国产日本在线| 亚洲午夜日本在线观看| 国产日产欧美精品| 可以看av的网站久久看| 亚洲精品一区二区三区婷婷月 | 亚洲在线观看免费| 国产日韩亚洲欧美| 麻豆91精品91久久久的内涵| 亚洲美女av在线播放| 国产精品红桃| 久久久久久噜噜噜久久久精品| 亚洲激情女人| 国产精品久久久一本精品| 久久不射电影网| 亚洲精品一区二区三区在线观看 | 亚洲伦理中文字幕| 国产精品二区三区四区| 欧美专区在线观看一区| 亚洲国产一区二区a毛片| 欧美系列一区| 久久免费视频网| 亚洲少妇最新在线视频| 国内精品美女av在线播放| 欧美精品一区二区三区蜜臀| 亚洲欧美国产精品专区久久| 影音先锋日韩资源| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 在线一区二区三区四区| 国产一区二区日韩精品| 欧美日韩 国产精品| 久久精品论坛| 一区二区三区高清在线| 国语精品中文字幕| 欧美日本在线看| 久久久久久久久综合| 中国成人在线视频| 在线日韩一区二区| 国产乱码精品一区二区三区五月婷 | 亚洲天堂第二页| 在线精品在线| 国产精品视频男人的天堂| 欧美成人国产va精品日本一级| 亚洲欧美国产视频| 91久久久久久| 国产亚洲精品久| 欧美日韩在线播放三区四区| 久久久精品国产一区二区三区| 一区二区高清视频在线观看| 今天的高清视频免费播放成人| 国产精品99免费看| 欧美不卡在线视频| 久久精品欧洲| 亚洲在线播放| 日韩亚洲一区二区| 亚洲第一级黄色片| 国产自产2019最新不卡| 国产精品乱码妇女bbbb| 欧美激情一区二区三区| 久久九九有精品国产23| 亚洲一区二区三区在线看| 亚洲欧洲在线播放| 伊人男人综合视频网| 国产午夜精品视频免费不卡69堂| 欧美视频一区在线| 欧美国产精品日韩| 鲁大师成人一区二区三区| 欧美在线观看一区| 亚洲综合日本| 夜夜夜久久久| 亚洲日本中文字幕| 在线看片日韩| 一区二区在线观看视频| 国产欧美精品在线播放| 国产精品久久久久久久久久ktv| 欧美成va人片在线观看| 久久亚洲视频| 久久综合九色综合久99| 久久精品国产亚洲5555| 欧美淫片网站| 亚洲主播在线观看| 亚洲伊人久久综合| 亚洲一区二区免费在线| 亚洲天堂av图片| 99精品视频网| 亚洲免费成人| 亚洲人成网站色ww在线| 91久久在线观看| 亚洲国产影院| 亚洲国产美女| 亚洲人体1000| 亚洲伦理在线观看| 99综合在线| 国产精品99久久久久久www| 亚洲五月六月| 亚洲欧美日韩国产一区二区三区| 亚洲在线观看视频| 欧美一级免费视频| 久久gogo国模啪啪人体图| 久久久久久69| 老司机成人网|