日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)MyBatis教程:MyBatis3XML配置-插件

插件(plugins)

Mybatis 允許你在映射語(yǔ)句執(zhí)行過(guò)程中的某一點(diǎn)進(jìn)行攔截調(diào)用。默認(rèn)情況下,MyBatis 允許使用插件來(lái)攔截的方法調(diào)用包括:

在富裕等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷(xiāo)推廣,外貿(mào)網(wǎng)站制作,富裕網(wǎng)站建設(shè)費(fèi)用合理。

  • Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
  • ParameterHandler (getParameterObject, setParameters)
  • ResultSetHandler (handleResultSets, handleOutputParameters)
  • StatementHandler (prepare, parameterize, batch, update, query)

這些類(lèi)中方法的細(xì)節(jié)可以通過(guò)查看每個(gè)方法的簽名來(lái)發(fā)現(xiàn),或者直接查看 MyBatis 發(fā)行包中的源代碼。 如果你想做的不僅僅是監(jiān)控方法的調(diào)用,那么你最好相當(dāng)了解要重寫(xiě)的方法的行為。 因?yàn)樵谠噲D修改或重寫(xiě)已有方法的行為時(shí),很可能會(huì)破壞 MyBatis 的核心模塊。 這些都是更底層的類(lèi)和方法,所以使用插件的時(shí)候要特別當(dāng)心。

通過(guò) MyBatis 提供的強(qiáng)大機(jī)制,使用插件是非常簡(jiǎn)單的,只需實(shí)現(xiàn) ?Interceptor接口,并指定想要攔截的方法簽名即可。

// ExamplePlugin.java
@Intercepts({@Signature(
  type= Executor.class,
  method = "update",
  args = {MappedStatement.class,Object.class})})
public class ExamplePlugin implements Interceptor {
  private Properties properties = new Properties();
  public Object intercept(Invocation invocation) throws Throwable {
    // implement pre processing if need
    Object returnObject = invocation.proceed();
    // implement post processing if need
    return returnObject;
  }
  public void setProperties(Properties properties) {
    this.properties = properties;
  }
}


  
    
  

上面的插件將會(huì)攔截在Executor實(shí)例中所有的?update?方法調(diào)用, 這里的?Executor?是負(fù)責(zé)執(zhí)行底層映射語(yǔ)句的內(nèi)部對(duì)象。

覆蓋配置類(lèi)

除了用插件來(lái)修改 MyBatis 核心行為以外,還可以通過(guò)完全覆蓋配置類(lèi)來(lái)達(dá)到目的。只需繼承配置類(lèi)后覆蓋其中的某個(gè)方法,再把它傳遞到 ?SqlSessionFactoryBuilder.build(myConfig)? 方法即可。再次重申,這可能會(huì)極大影響 MyBatis 的行為,務(wù)請(qǐng)慎之又慎。


標(biāo)題名稱:創(chuàng)新互聯(lián)MyBatis教程:MyBatis3XML配置-插件
URL網(wǎng)址:http://www.dlmjj.cn/article/cccsjig.html