亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識(shí)庫 > mybatis動(dòng)態(tài)sql實(shí)現(xiàn)邏輯代碼詳解

mybatis動(dòng)態(tài)sql實(shí)現(xiàn)邏輯代碼詳解

熱門標(biāo)簽:在電子版地圖標(biāo)注要收費(fèi)嗎 外呼系統(tǒng)會(huì)封嗎 地圖標(biāo)注如何弄全套標(biāo) 南京電銷外呼系統(tǒng)哪家好 萬利達(dá)綜合醫(yī)院地圖標(biāo)注點(diǎn) 電銷機(jī)器人 深圳 實(shí)體店地圖標(biāo)注怎么標(biāo) 武漢AI電銷機(jī)器人 股票配資電銷機(jī)器人

mybatis通過將sql配置xml文件中,通過解析xml動(dòng)態(tài)標(biāo)簽來實(shí)現(xiàn)動(dòng)態(tài)sql
如下樣例 xml文件

?xml version = "1.0" ?>
!DOCTYPE script SYSTEM "script-1.0.dtd">
script namespace="user">
    common id="commonOrder">
        order by id desc
    /common>
    sql id="queryUser">
        select * from user
        where>
            if test='id != null '>
                id = #{id}
            /if>
            if test="names != null and names.size() >0">
                and name in
                foreach collection="names" item="item" separator="," open="(" close=")">
                    ${item}
                /foreach>
            /if>
        /where>
        ref id="commonOrder"/>
    /sql>

    sql id="updateUser">
        update user set name = ${name}
        where>
            if test='id != null '>
                id = #{id}
            /if>
        /where>
    /sql>

 
/script>

1.xml文件讀取

xml標(biāo)簽編寫規(guī)則

!ELEMENT script (#PCDATA | sql | common)*>
!ATTLIST script
namespace CDATA #REQUIRED
>
!ELEMENT sql (#PCDATA | trim | where | set | foreach | choose | if | ref)*>
!ATTLIST sql
id CDATA #REQUIRED
>
!ELEMENT common (#PCDATA | trim | where | set | foreach | choose | if)*>
!ATTLIST common
id CDATA #REQUIRED
>
!ELEMENT ref (#PCDATA)*>
!ATTLIST ref
id CDATA #REQUIRED
>
!ELEMENT trim (#PCDATA | trim | where | set | foreach | choose | if)*>
!ATTLIST trim
prefix CDATA #IMPLIED
prefixOverrides CDATA #IMPLIED
suffix CDATA #IMPLIED
suffixOverrides CDATA #IMPLIED
>
!ELEMENT where (#PCDATA | trim | where | set | foreach | choose | if | ref)*>
!ELEMENT set (#PCDATA | trim | where | set | foreach | choose | if)*>

!ELEMENT foreach (#PCDATA | trim | where | set | foreach | choose | if)*>
!ATTLIST foreach
collection CDATA #REQUIRED
item CDATA #IMPLIED
index CDATA #IMPLIED
open CDATA #IMPLIED
close CDATA #IMPLIED
separator CDATA #IMPLIED
>

!ELEMENT choose (when* , otherwise?)>
!ELEMENT when (#PCDATA | trim | where | set | foreach | choose | if)*>
!ATTLIST when
test CDATA #REQUIRED
>
!ELEMENT otherwise (#PCDATA | trim | where | set | foreach | choose | if)*>

!ELEMENT if (#PCDATA | trim | where | set | foreach | choose | if)*>
!ATTLIST if
test CDATA #REQUIRED
>

DocumentBuilderFactory 是jdk自帶的解析xml文件操作,位于 javax.xml.parsers 包,如圖其是一個(gè)抽象類,因此無法被實(shí)例化

需要通過 newInstance 來實(shí)例化

實(shí)例化對(duì)象后的屬性 setValidating(true); 即通過xml的 驗(yàn)證規(guī)則進(jìn)行xml格式驗(yàn)證

setNamespaceAware 設(shè)置忽略命名空間
對(duì)于xml文件的命名空間的定義,詳見
https://www.jb51.net/article/219617.htm

private Document buildXml(InputStream scriptFile)
				throws ParserConfigurationException, SAXException, IOException {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			//默認(rèn)情況下,解析器不驗(yàn)證文檔。將這個(gè)參數(shù)設(shè)置為 true 可打開驗(yàn)證功能。
			factory.setValidating(true);
			//是否設(shè)置命名空間
			factory.setNamespaceAware(false);
			//確定是否要忽略文件中的注釋。其默認(rèn)值為 false。
			factory.setIgnoringComments(true);
			//確定是否要忽略元素內(nèi)容中的空白(類似于瀏覽器對(duì)待 HTML 的方式)。其默認(rèn)值為 false。
			factory.setIgnoringElementContentWhitespace(false);
			//定解析器是否要將 CDATA 節(jié)點(diǎn)轉(zhuǎn)換為文本,以及是否要和周圍的文本節(jié)點(diǎn)合并(如果適用的話)。其默認(rèn)值為 false。
			factory.setCoalescing(false);
			//確定是否要展開外部實(shí)體引用。如果為 true,外部數(shù)據(jù)將插入文檔。其默認(rèn)值為 true
			factory.setExpandEntityReferences(true);

			DocumentBuilder builder = factory.newDocumentBuilder();
			//設(shè)置驗(yàn)證規(guī)則文件 dtd文件
			builder.setEntityResolver(new EntityResolver() {
				@Override
				public InputSource resolveEntity(String publicId,
						String systemId) throws SAXException, IOException {
					return new InputSource(new ClassPathResource("script-1.0.dtd").getInputStream());
				}
			});
			//設(shè)置錯(cuò)誤解析器
			builder.setErrorHandler(new ErrorHandler() {
				@Override
				public void error(SAXParseException exception)
						throws SAXException {
					throw exception;
				}

				@Override
				public void fatalError(SAXParseException exception)
						throws SAXException {
					throw exception;
				}

				@Override
				public void warning(SAXParseException exception)
						throws SAXException {
				}
			});
			return builder.parse(scriptFile);
		}

2.xml 文件解析

到此這篇關(guān)于mybatis動(dòng)態(tài)sql實(shí)現(xiàn)邏輯代碼詳解的文章就介紹到這了,更多相關(guān)mybatis動(dòng)態(tài)sql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 在Mybatis @Select注解中實(shí)現(xiàn)拼寫動(dòng)態(tài)sql
  • Mybatis 動(dòng)態(tài)SQL的幾種實(shí)現(xiàn)方法
  • Mybatis中的動(dòng)態(tài)SQL語句解析
  • MyBatis動(dòng)態(tài)Sql之if標(biāo)簽的用法詳解
  • mybatis動(dòng)態(tài)sql之Map參數(shù)的講解
  • Mybatis模糊查詢和動(dòng)態(tài)sql語句的用法
  • Mybatis下動(dòng)態(tài)sql中##和$$的區(qū)別講解
  • MyBatis執(zhí)行動(dòng)態(tài)SQL的方法

標(biāo)簽:安徽 武威 汕頭 泰安 濟(jì)寧 臺(tái)州 濟(jì)源 廣東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mybatis動(dòng)態(tài)sql實(shí)現(xiàn)邏輯代碼詳解》,本文關(guān)鍵詞  mybatis,動(dòng)態(tài),sql,實(shí)現(xiàn),邏輯,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mybatis動(dòng)態(tài)sql實(shí)現(xiàn)邏輯代碼詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于mybatis動(dòng)態(tài)sql實(shí)現(xiàn)邏輯代碼詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日日夜夜婷婷| 可以在线看黄的网站| 国产视频一区在线| 99色播| 二级片在线观看| 日本特黄特色aaa大片免费| 国产激情一区二区三区| 亚飞与亚基在线观看| 韩国毛片免费大片| 国产亚洲精品成人a在线| 黄色福利片| 韩国三级一区| 欧美电影免费看大全| 国产91精品一区二区| 国产福利免费观看| 国产网站在线| 成人免费网站视频ww| 香蕉视频久久| 免费国产在线观看| 国产精品自拍一区| 精品国产亚洲人成在线| 精品国产一区二区三区国产馆| 欧美国产日韩精品| 999久久狠狠免费精品| 欧美一级视频高清片| 国产美女在线一区二区三区| 久久国产精品永久免费网站| 国产不卡在线观看| 日韩专区第一页| 韩国三级视频网站| 国产91精品一区| 国产网站免费| 999久久狠狠免费精品| 日韩男人天堂| 99久久视频| 国产精品1024在线永久免费| 欧美国产日韩在线| 九九久久国产精品大片| 黄视频网站在线看| 国产91精品露脸国语对白| 成人高清视频免费观看| 精品在线观看国产| 91麻豆精品国产高清在线| 午夜久久网| 精品视频一区二区三区| 国产视频在线免费观看| 国产一区二区精品久久91| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日本在线播放一区| 亚洲爆爽| 国产麻豆精品| 国产高清在线精品一区二区| 日韩专区第一页| 日本特黄特色aaa大片免费| 一级女性全黄生活片免费| 欧美18性精品| 亚洲精品中文一区不卡| 成人免费高清视频| 韩国三级香港三级日本三级la | 欧美激情一区二区三区在线| 成人影院一区二区三区| 台湾毛片| 日韩专区第一页| 韩国毛片基地| 你懂的日韩| 欧美1区2区3区| 免费一级片在线| 亚洲精品久久久中文字| 一级女性全黄生活片免费| 黄色福利片| 精品视频在线看| 国产伦精品一区二区三区在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日韩中文字幕在线播放| 日韩av东京社区男人的天堂| 人人干人人插| 久久精品成人一区二区三区| 毛片电影网| 黄色免费网站在线| 久久99中文字幕久久| 日本在线www| 日本在线不卡免费视频一区| 精品国产亚一区二区三区| 久久99欧美| 日韩av片免费播放| 精品视频一区二区三区| 精品视频在线观看一区二区三区| 精品久久久久久中文字幕一区| 久久成人亚洲| 日韩在线观看免费| 欧美一区二区三区在线观看| 日韩男人天堂| 九九九国产| 久草免费在线色站| 香蕉视频亚洲一级| 精品国产一区二区三区久| 日日爽天天| 国产伦理精品| 一本高清在线| 久久国产一区二区| 国产a视频| 香蕉视频一级| 日韩在线观看免费| 日韩女人做爰大片| 日本免费乱人伦在线观看| 99久久精品国产国产毛片| 夜夜操网| 欧美激情一区二区三区在线播放| 欧美激情伊人| 国产综合91天堂亚洲国产| 亚洲第一页色| 亚欧乱色一区二区三区| 精品久久久久久综合网| 91麻豆国产福利精品| 九九精品影院| 国产精品自拍亚洲| 四虎影视库国产精品一区| 成人影视在线观看| 色综合久久手机在线| 91麻豆精品国产高清在线| 国产不卡高清| 日本免费乱理伦片在线观看2018| 久久99中文字幕| 国产麻豆精品免费视频| 黄色福利| 精品国产一级毛片| 97视频免费在线观看| 国产国语在线播放视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品国产亚洲人成在线| 欧美爱爱网| 国产伦精品一区三区视频| 精品国产一区二区三区久久久狼| 国产伦精品一区二区三区无广告 | 国产一区国产二区国产三区| 欧美1区| 成人a大片高清在线观看| 亚洲精品久久玖玖玖玖| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 韩国三级视频网站| 久久精品人人做人人爽97| 国产亚洲免费观看| 日韩一级黄色片| 国产91精品系列在线观看| 香蕉视频久久| 国产不卡在线观看视频| 免费国产在线视频| 在线观看成人网| 毛片高清| 99久久精品国产国产毛片| 国产麻豆精品免费密入口| 日本免费乱人伦在线观看| 国产一区二区精品久久| 美女免费精品视频在线观看| 日韩免费在线观看视频| 99色视频在线| 欧美另类videosbestsex久久| 日韩一级黄色片| 午夜激情视频在线观看| 99热精品在线| 超级乱淫黄漫画免费| 91麻豆爱豆果冻天美星空| 精品国产三级a| 久草免费在线色站| 精品久久久久久中文字幕2017| 欧美国产日韩久久久| 国产麻豆精品hdvideoss| 精品国产亚洲人成在线| 九九免费精品视频| 一级女性大黄生活片免费| 日韩中文字幕一区二区不卡| 国产麻豆精品免费视频| 国产麻豆精品视频| 欧美一级视| 欧美激情在线精品video| 九九久久99| 国产网站免费| 成人影院一区二区三区| 日本免费乱人伦在线观看| 青青久在线视频| a级黄色毛片免费播放视频| 精品视频在线观看一区二区| 一级毛片视频免费| a级毛片免费观看网站| 精品毛片视频| 精品视频在线观看一区二区三区| 日日夜夜婷婷| 亚洲 欧美 成人日韩| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 黄色免费三级| 日本在线www| 精品国产香蕉在线播出| 国产网站在线| 国产成人精品综合在线| 欧美日本二区| 美女免费毛片| 成人高清护士在线播放| 欧美激情中文字幕一区二区| 青青青草视频在线观看| 欧美a级大片|