国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Ibatis配置詳解

Ibatis配置詳解

關(guān)鍵字: ibatis配置詳解
Java代碼
  1. ibatis與hibernate都是持久層的額技術(shù)框架,這里看看ibatis的配置:作為自己以后的參考:    
  2.   ibstis的配置主要由兩種文件,    
  3.   (一)有關(guān)項(xiàng)目的總體配置,如連接的數(shù)據(jù)源,連接池,緩存等的配置,也即sqlmapconfig.xml文件的配置。    
  4.   (二)sqlmap.xml文件的配置,也即對(duì)象與表的操作映射的配置。    
  5. 下面分兩個(gè)部分進(jìn)行記錄    
  6.   
  7.  第一部分    sqlmapconfig.xml    
  8.   
  9. 在這個(gè)文件中總共的結(jié)構(gòu)如下:    
  10. <?xml version="1.0" encoding="UTF-8"?>    
  11. <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">    
  12. <sqlMapConfig>    
  13.     
  14.   <!-- 這里進(jìn)行文件的注釋說(shuō)明 -->    
  15.     
  16.   <properties resource="">       ------->在這里將項(xiàng)目(工程)的所有資源文件包含進(jìn)來(lái),將相對(duì)與src路徑的資源文件的路徑以及文件名包含進(jìn)來(lái)    
  17.   
  18.     
  19.   <settings  cacheModelsEnabled="true"  --->全局控制sqlMapClient的緩存    
  20.               enhancementEnabled="true" --->全局控制運(yùn)行時(shí)字節(jié)碼增強(qiáng),優(yōu)化javabean的屬性性能    
  21.               lazyLoadingEnabled="true"  --->延遲加載    
  22.               errorTracingEnabled="true"    
  23.               maxRequests="32"   ---->同時(shí)執(zhí)行sql語(yǔ)句的最大線(xiàn)程數(shù),通常大小是maxTransactions的10倍,并且總是大于maxTransactions和maxSessions的總和。減小這個(gè)值能夠提高性能。    
  24.               maxSessions="10"    
  25.               maxTransactions="5"    
  26.               useStatementNamespaces="false"  --->是否啟動(dòng)全局的sqlmap名字空間。如果啟動(dòng)則應(yīng)用時(shí),必須加上名字空間:queryForObject(sqlMap的名字空間.statementName)    
  27.   
  28.   />  --------->這個(gè)節(jié)點(diǎn)是設(shè)置工程的總體性能,根據(jù)名稱(chēng)來(lái)設(shè)置    
  29.   
  30.       
  31.   <typeAlias alias="person" type="com.Jdnis.ibatis.model.Person" />    
  32.   ----->這個(gè)節(jié)點(diǎn)是將長(zhǎng)的路徑名等用短的進(jìn)行替代,也就是用上面的person來(lái)代表右邊的person類(lèi)    
  33.   
  34.        
  35.     <transactionManager type="JDBC">  -->type指定事務(wù)管理器:JDBC,JTA,EXTERNAL,三者的區(qū)別后面再講到    
  36.         <dataSource type="SIMPLE">  -->type值由:SIMPLE,DBCP,JNDI三者的使用后面再講    
  37.             <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />    
  38.             <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/person" />    
  39.             <property name="JDBC.Username" value="root" />    
  40.             <property name="JDBC.Password" value="root" />    
  41.             <property name="Pool.MaximumActiveConnections" value="10" />    
  42.             <property name="Pool.MaximumIdleConnections" value="5" />    
  43.             <property name="Pool.MaximumCheckoutTime" value="120000" />    
  44.             <property name="Pool.TimeToWait" value="500" />    
  45.             <property name="Pool.PingQuery" value="select 1 from sample" />    
  46.             <property name="Pool.PingEnabled" value="false" />    
  47.             <property name="Pool.PingConnectionsOlderThan" value="1" />    
  48.             <property name="Pool.PingConnectionsNotUsedFor" value="1" />    
  49.         </dataSource>    
  50.     </transactionManager>      
  51.   
  52.     ------->這個(gè)節(jié)點(diǎn)是來(lái)配置數(shù)據(jù)源,數(shù)據(jù)庫(kù)連接等等信息的。    
  53.     
  54.   
  55.    <sqlMap resource="com/neusoft/ibatis/map/person.xml" />    
  56.        -->將系統(tǒng)中的對(duì)象與數(shù)據(jù)庫(kù)表的映射文件都包含進(jìn)來(lái)上面采用的時(shí)相對(duì)路徑,當(dāng)然也可以用絕對(duì)路徑:<sqlmap url="file:///C:/config/person.xml"    
  57.        
  58. </sqlMapConfig>    
  59.      
  60.   
  61.  第二部分:sqlmap.xml映射文件    
  62.   
  63. <?xml version="1.0" encoding="UTF-8"?>    
  64. <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">    
  65. <sqlMap namespace="Person">    
  66.    <!-- 注釋說(shuō)明 -->    
  67.       
  68.    <cacheModel id="personCache" type="LRU">    
  69.      <flushInterval hours="24"/>    
  70.      <property name="size" value="1000"/>    
  71.    </cacheModel>    
  72.      
  73.    <typeAlias alias="person" type="com.Jdnis.ibatis.model.Person" />    
  74.       
  75.    <parameterMap id="personParam" class="person">    
  76.       <parameter property="id"/>    
  77.        ......    
  78.    </parameterMap>    
  79.   
  80.    <resultMap id="personResult" class="person">    
  81.       <result property="id" column="PER_ID"/>    
  82.          ......    
  83.    </resultMap>    
  84.   
  85.    <statement id="insertPerson" parameterClass="person">    
  86.      INSERT INTO persons VALUES(#id#,#firstName#,#lastName#,#birthDate#,#weight#,#height#)    
  87.    </statement>    
  88.    其他<statement>,<insert>,<update>,<select>,<delete>,<procedure>    
  89. </sqlMap>    
  90.   
  91. 注解:    
  92.   <1>statement    
  93.      屬性:id(名稱(chēng)),parameterClass(輸入?yún)?shù)的類(lèi)型),resultClass(輸出參數(shù)的類(lèi)型),parameterMap(name of parameterMap),resultMap(name of reaultMap),cacheModel(name of cacheModel),其中只有一個(gè)必選屬性:id    
  94. statement 的體時(shí)sql語(yǔ)句,當(dāng)sql有特殊字符時(shí),將它放進(jìn)CDATA塊中如:<![CDATA[select * from person where PER_D>#id#]]>    
  95.   
  96.   <2>自動(dòng)生成主鍵    
  97.       通過(guò)<insert>子元素<selectKey>來(lái)支持自動(dòng)生成的鍵值,例如:    
  98.      ----對(duì)于oracle    
  99.     <insert id="insertPerson-Oracl" parameterClass="person">    
  100.        <selectKey resultClass="int" keyProperty="id">    
  101.           SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL    
  102.        </selectKey>    
  103.        insert into    
  104.        PERSON(PER_ID,PER_FIRST.....)    
  105.        values(#id#,#firstName#....);    
  106.     </insert>    
  107.     --->對(duì)于sqlServer    
  108.     <insert id="insertPerson-sqlServer" parameterClass="person">    
  109.        insert into    
  110.        PERSON(PER_FIRST.....)    
  111.        values(#firstName#....);    
  112.        <selectKey resultClass="int" keyProperty="id">    
  113.           SELECT @@IDENTITY AS ID    
  114.        </selectKey>    
  115.     </insert>    
  116.   
  117.   <3>存儲(chǔ)過(guò)程    
  118. <parameterMap id="swapParameters" class="map">    
  119.    <parameter property="email1" jdbcType="varchar" javaType="java.lang.String" model="INOUT"/>    
  120. <parameter property="email12" jdbcType="varchar" javaType="java.lang.String" model="INOUT"/>    
  121.   </parameterMap>    
  122.   <procedure id="swapEmailAddresses" parameterMap="swapParameters">    
  123.     {call swap_email_addres(?,?)}    
  124.   </procedure>    
  125.   
  126.   <4>parameterClass 輸入?yún)?shù)的類(lèi)類(lèi)型    
  127.   <5>resultClass 輸出參數(shù)的類(lèi)類(lèi)型    
  128.   <6>parameterMap    
  129.      用到預(yù)處理的PreparedStatement,將要進(jìn)行預(yù)處理的數(shù)據(jù),先放到parameterMap元素中,接著引用parameterMap元素:例如:    
  130. <parameterMap id="insert-person-param" class="person">    
  131.   <parameter property="id"/>    
  132.   <parameter property="firstName"/>    
  133.   <parameter property="lastName"/>    
  134.   <parameter property="birthDate"/>    
  135.   <parameter property="weight">    
  136.   <parameter property="height"/>    
  137. </parameterMap>    
  138. <statement id="insertPerson" parameterMap="insert-person-param">    
  139.   insert into person values(?,?,?,?,?,?);    
  140. </statement>    
  141.   
  142. <7>resultMap結(jié)果映射到預(yù)先定義的resultMap中    
  143. <resultMap id="get-person" resultClass="person">    
  144.   <result property="id" column="PER_ID"/>    
  145.   <result property="firstName" column="PER_FIRST_NAME"/>    
  146.   ......    
  147. </resultMap>    
  148. <statement id="getPerson" resuleMap="get-person">    
  149.   select * from person    
  150. <statement>    
  151.   
  152.   <8>cacheModel定義查詢(xún)緩存    
  153. <cacheModel id="person-cache" implementation="LRU">    
  154.   <flushInterval hours="24">    
  155.   <flushOnExecute statement="insertPerson"/>    
  156.   <flushOnExecute statement="updatePerson"/>    
  157.   <flushOnExecute statement="deletePerson"/>    
  158.    ......     
  159.   <property name="size" value="1000"/>    
  160. </cacheModel>    
  161. <statement id="getPerson" parameterClass="int" cacheModel="person-cache">    
  162.   <![CDATA[select * from person where PER_ID=#id#]]>    
  163. </statement>    
  164.   注解:每隔24小時(shí),就會(huì)清除緩沖區(qū),除非執(zhí)行了insertPerson,updatePerson,deletePerson操作(立即清除緩沖區(qū))   

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ibatis調(diào)用mysql存儲(chǔ)過(guò)程示例
Ibatis2.0使用說(shuō)明(一)——入門(mén)實(shí)例篇
Eclipse RCP / RAP 與Spring ibatis集成
iBatis2-SqlMap的配置總結(jié)
BATIS 2.0 開(kāi)發(fā)指南
IbatisNet開(kāi)發(fā)使用小結(jié) 之一
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服