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

資訊專欄INFORMATION COLUMN

MyBatis支持的OGNL語(yǔ)法

wh469012917 / 1008人閱讀

摘要:支持的語(yǔ)法用于解析靜態(tài)方法解析表達(dá)式在映射語(yǔ)句中可以支持引入以下幾種方式示例變量屬性靜態(tài)方法無(wú)參數(shù)待參數(shù)靜態(tài)屬性數(shù)組索引集合構(gòu)造方法的靜態(tài)方法可以省略的編寫(xiě),方法的默認(rèn)是包下的靜態(tài)方法可以省略的編寫(xiě),類默認(rèn)的是語(yǔ)法中通過(guò)兩個(gè)字符,前者

Mybatis支持OGNL的語(yǔ)法 OgnlCache

用于解析靜態(tài)方法
org.apache.ibatis.scripting.xmltags.TextSqlNode.BindingTokenParser#handleToken
org.apache.ibatis.scripting.xmltags.OgnlCache#getValue
org.apache.ibatis.scripting.xmltags.OgnlCache#parseExpression解析表達(dá)式
org.apache.ibatis.ognl.Ognl#parseExpression
org.apache.ibatis.ognl.OgnlParser#staticReference
org.apache.ibatis.ognl.OgnlParser#staticMethodCall
org.apache.ibatis.ognl.OgnlRuntime#callStaticMethod

在sql映射語(yǔ)句中可以支持引入以下幾種方式

示例SQL

變量
id =${id}

屬性
id = ${user.id}

靜態(tài)方法(public)- 無(wú)參數(shù)
id="${@cn.followtry.mybatis.bean.User@name()}"

待參數(shù)
id="${@org.apache.commons.lang3.math.NumberUtils@isNumber("abcd")}"

靜態(tài)屬性(public)
id=${@cn.followtry.mybatis.bean.User@aaa}

數(shù)組索引
id="${@cn.followtry.mybatis.bean.User@arr[1]}"

集合
"${@cn.followtry.mybatis.bean.User@list[1]}"

Map
id="${@[email protected]("123")}"
id="${@cn.followtry.mybatis.bean.User@map}"

Enum

id=${@[email protected]()}

構(gòu)造方法
id="${new cn.followtry.mybatis.bean.User()}"

java.lang.Math的靜態(tài)方法
id = ${@@abs(-12345678)} 可以省略class的編寫(xiě),方法的默認(rèn)class是java.lang.Math

java.lang包下的靜態(tài)方法
id = ${@Integer@parseInt("654")} 可以省略package的編寫(xiě),類默認(rèn)的package是java.lang

${}語(yǔ)法中通過(guò)兩個(gè)@字符,前者定位到Java類,后者定位到類中的方法或?qū)傩?br>這里只列出的其中一部分,對(duì)于Mybatis支持的${}語(yǔ)法,可以參見(jiàn)OGNL語(yǔ)法手冊(cè)。

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

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

相關(guān)文章

  • 一次mybatisognl引發(fā)bug排查

    摘要:現(xiàn)象項(xiàng)目組一妹子程序員求助,說(shuō)有,有一個(gè)值明明設(shè)置的是,但是存到數(shù)據(jù)庫(kù)里面卻會(huì)自動(dòng)變成,嘗試了各種調(diào)整也找不原因,都快急瘋了我以前確實(shí)沒(méi)有研究過(guò)源碼,本著專研問(wèn)題的精神,決定通過(guò)對(duì)一探究竟。 現(xiàn)象 ??項(xiàng)目組一妹子程序員求助,說(shuō)mybatis有bug,有一個(gè)值明明設(shè)置的是A.prop1=XXX,但是存到數(shù)據(jù)庫(kù)里面卻會(huì)自動(dòng)變成A.prop1=true,嘗試了各種調(diào)整也找不原因,都快急瘋了...

    RichardXG 評(píng)論0 收藏0
  • Mybatis源碼分析(1) - Mybatis包目錄簡(jiǎn)介

    摘要:核心包包名稱包內(nèi)內(nèi)容簡(jiǎn)介注解目錄。如等類的實(shí)例反射生成工具目錄主要是注解,和的構(gòu)造器及轉(zhuǎn)換器內(nèi)部緩存接口。等默認(rèn)的游標(biāo)處理類數(shù)據(jù)源工廠類及實(shí)現(xiàn)。數(shù)據(jù)源實(shí)現(xiàn)類自定義的三個(gè)異常類。。都繼承自執(zhí)行器相關(guān)包。為后續(xù)分析源碼打下基礎(chǔ)。 Mybatis核心包 showImg(https://segmentfault.com/img/remote/1460000018747383?w=746&h=1...

    chengtao1633 評(píng)論0 收藏0
  • Mybatis系列】從源碼角度理解Mybatis$和#作用

    摘要:原因就是傳入的和原有的單引號(hào),正好組成了,而后面恒等于,所以等于對(duì)這個(gè)庫(kù)執(zhí)行了查所有的操作。類比的執(zhí)行流程和原有的我們使用的方法就是??梢岳斫鉃榫褪怯脕?lái)解析定制的符號(hào)的語(yǔ)句。后續(xù)的流程,就和正常的流程一致了。 前言 在JDBC中,主要使用的是兩種語(yǔ)句,一種是支持參數(shù)化和預(yù)編譯的PrepareStatement,能夠支持原生的Sql,也支持設(shè)置占位符的方式,參數(shù)化輸入的參數(shù),防止Sql注...

    yanwei 評(píng)論0 收藏0
  • Mybatis常見(jiàn)面試題

    摘要:執(zhí)行沒(méi)有,批處理不支持,將所有都添加到批處理中,等待統(tǒng)一執(zhí)行,它緩存了多個(gè)對(duì)象,每個(gè)對(duì)象都是完畢后,等待逐一執(zhí)行批處理。 Mybatis常見(jiàn)面試題 #{}和${}的區(qū)別是什么? #{}和${}的區(qū)別是什么? 在Mybatis中,有兩種占位符 #{}解析傳遞進(jìn)來(lái)的參數(shù)數(shù)據(jù) ${}對(duì)傳遞進(jìn)來(lái)的參數(shù)原樣拼接在SQL中 #{}是預(yù)編譯處理,${}是字符串替換。 使用#{}可以有效的防止...

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

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

0條評(píng)論

wh469012917

|高級(jí)講師

TA的文章

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