国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MyBatis支持的OGNL語法

wh469012917 / 981人閱讀

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

Mybatis支持OGNL的語法 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映射語句中可以支持引入以下幾種方式

示例SQL

變量
id =${id}

屬性
id = ${user.id}

靜態(tài)方法(public)- 無參數(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="${@cn.followtry.mybatis.bean.User@map.get("123")}"
id="${@cn.followtry.mybatis.bean.User@map}"

Enum

id=${@cn.followtry.mybatis.bean.CodeTypeEnum@THREE.ordinal()}

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

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

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

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

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

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

相關(guān)文章

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

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

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

    摘要:核心包包名稱包內(nèi)內(nèi)容簡介注解目錄。如等類的實(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è)庫執(zhí)行了查所有的操作。類比的執(zhí)行流程和原有的我們使用的方法就是。可以理解為就是用來解析定制的符號(hào)的語句。后續(xù)的流程,就和正常的流程一致了。 前言 在JDBC中,主要使用的是兩種語句,一種是支持參數(shù)化和預(yù)編譯的PrepareStatement,能夠支持原生的Sql,也支持設(shè)置占位符的方式,參數(shù)化輸入的參數(shù),防止Sql注...

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

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

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

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

0條評(píng)論

wh469012917

|高級(jí)講師

TA的文章

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