婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 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)哪家好 萬(wàn)利達(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)簽來(lái)實(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è)抽象類,因此無(wú)法被實(shí)例化

需要通過 newInstance 來(lái)實(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語(yǔ)句解析
  • MyBatis動(dòng)態(tài)Sql之if標(biāo)簽的用法詳解
  • mybatis動(dòng)態(tài)sql之Map參數(shù)的講解
  • Mybatis模糊查詢和動(dòng)態(tài)sql語(yǔ)句的用法
  • 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)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mybatis動(dòng)態(tài)sql實(shí)現(xiàn)邏輯代碼詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于mybatis動(dòng)態(tài)sql實(shí)現(xiàn)邏輯代碼詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产aⅴ综合色| 盗摄精品av一区二区三区| 国产精品久久久久久福利一牛影视| 国产日韩精品视频一区| 亚洲一区二区在线播放相泽| 精品中文字幕一区二区小辣椒| 国产一区二区精品久久99| 欧美日韩大陆一区二区| 国产精品美女久久久久av爽李琼| 天堂精品中文字幕在线| 国产真实乱偷精品视频免| 欧美在线999| 亚洲一区日韩精品中文字幕| 99精品视频在线观看| 久久久久国产成人精品亚洲午夜 | 色婷婷精品大在线视频| 日韩午夜电影av| 波多野结衣视频一区| 国产视频亚洲色图| 成人性生交大片免费看视频在线 | 一本久久a久久精品亚洲| ㊣最新国产の精品bt伙计久久| 97se亚洲国产综合自在线| 亚洲午夜精品在线| 国产精品综合在线视频| 欧美午夜寂寞影院| 久久久精品欧美丰满| 亚洲国产欧美在线| 日韩精品中文字幕在线不卡尤物| 国产一区不卡精品| 国产精品久久久久影院| 欧美日韩精品电影| 国产乱理伦片在线观看夜一区| 国产成人免费高清| 日韩国产欧美在线播放| 日韩精品一区二区三区四区| 成人av在线一区二区| 精品系列免费在线观看| 亚洲一区二区欧美| 亚洲免费在线看| 日韩一区二区电影在线| 大白屁股一区二区视频| 精品一区二区久久| 综合分类小说区另类春色亚洲小说欧美| 国产精品久久久久婷婷二区次| 精品午夜久久福利影院| 91精品国产aⅴ一区二区| 亚洲一区二区精品3399| 国产大陆a不卡| 亚洲精品一区二区三区影院| 日韩精品一二三| 欧美日韩高清一区二区不卡| 中国色在线观看另类| 福利91精品一区二区三区| 精品国产91乱码一区二区三区| 日本伊人午夜精品| 欧美成人一区二区三区片免费| 亚洲国产综合人成综合网站| 日本高清免费不卡视频| 国产精品久久久久四虎| 99精品国产一区二区三区不卡| 欧美激情艳妇裸体舞| 国产91丝袜在线播放0| 久久在线免费观看| 久久99久国产精品黄毛片色诱| 日韩精品一区国产麻豆| 国产精品66部| 国产精品麻豆久久久| 色综合天天综合在线视频| 一区二区三区视频在线看| 在线精品观看国产| 亚洲丰满少妇videoshd| 91超碰这里只有精品国产| 久久精品国产精品亚洲红杏| 26uuu亚洲综合色欧美| av在线综合网| 一区二区三区小说| 日韩成人免费在线| 日韩一级高清毛片| 成人综合婷婷国产精品久久| 欧美国产日韩一二三区| 在线不卡a资源高清| 91在线视频免费观看| 美国十次综合导航| 亚洲女同一区二区| 久久先锋资源网| 欧美中文字幕久久| 国产成人av一区| 六月婷婷色综合| 国产精品久久久久影院色老大| 欧美一区二区三区免费视频| av一区二区久久| 成人av电影观看| 国产一级精品在线| 蜜桃久久精品一区二区| 亚洲va中文字幕| 亚洲日本欧美天堂| 欧美一级二级在线观看| 91啪亚洲精品| 国产一区二区免费视频| 午夜精品福利一区二区蜜股av| 国产亚洲美州欧州综合国 | 国产做a爰片久久毛片| 蜜桃久久av一区| 另类小说图片综合网| 国产在线视频一区二区三区| 亚洲成人黄色影院| 国产精品理伦片| 洋洋av久久久久久久一区| 亚洲高清免费观看| 午夜精品久久久久久久久| 成人激情电影免费在线观看| 成人免费看黄yyy456| 日本电影欧美片| 777欧美精品| 国产精品初高中害羞小美女文| 亚洲欧美国产77777| 午夜伦欧美伦电影理论片| 日本在线观看不卡视频| 国产成人精品影院| 成人av在线一区二区三区| 欧美三级电影在线看| 欧美精品丝袜中出| 精品国产99国产精品| 亚洲免费观看高清完整版在线| 中文字幕永久在线不卡| 亚洲精品va在线观看| 日韩在线a电影| 成人精品视频一区| 制服丝袜中文字幕亚洲| 久久蜜桃香蕉精品一区二区三区| 亚洲免费在线播放| 国产不卡视频一区二区三区| 欧美日韩和欧美的一区二区| 亚洲午夜精品一区二区三区他趣| 欧美日韩一本到| 精品免费日韩av| 中文一区一区三区高中清不卡| 中文一区二区完整视频在线观看| 亚洲成人午夜影院| 国产一区二三区好的| 精品久久一二三区| 亚洲午夜影视影院在线观看| 国产成人超碰人人澡人人澡| 欧美剧在线免费观看网站 | 天天av天天翘天天综合网色鬼国产| 国产91对白在线观看九色| 欧美性欧美巨大黑白大战| 亚洲色图20p| 欧美亚洲动漫精品| 亚洲成av人片在线观看无码| 色婷婷精品久久二区二区蜜臂av | 欧洲一区二区三区在线| 国产精品久久午夜夜伦鲁鲁| 成人福利视频网站| 亚洲国产一区二区三区| 欧美三级日韩三级| 狠狠色综合色综合网络| 久久久久久久久一| 91网站在线观看视频| 亚洲激情第一区| 91 com成人网| 成a人片国产精品| 亚洲电影视频在线| 日韩欧美的一区| 91亚洲国产成人精品一区二三 | 日本高清免费不卡视频| 美女在线观看视频一区二区| 精品欧美一区二区久久| 91色婷婷久久久久合中文| 三级欧美在线一区| 亚洲国产精品成人久久综合一区| 欧美激情综合在线| 91麻豆精品国产91久久久更新时间 | 亚洲三级电影网站| 精品国产3级a| 欧美另类高清zo欧美| 国产成人在线色| 另类小说图片综合网| 国产精品美女一区二区三区| 欧美精品高清视频| 91网页版在线| av不卡在线播放| 国产精品资源网站| 国产一区二区美女诱惑| 三级久久三级久久久| 国产亚洲一区二区三区四区 | 午夜视频在线观看一区| 国产精品系列在线观看| 亚洲日本在线观看| 国产喂奶挤奶一区二区三区| 欧美伦理影视网| 欧美三级视频在线观看| 97久久精品人人做人人爽50路| 国产在线精品一区二区三区不卡 | 亚洲女爱视频在线| 曰韩精品一区二区| 亚洲激情图片qvod| 一个色妞综合视频在线观看| 国产视频视频一区|