??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲天堂男人,二区三区在线,成人av免费看http://www.aygfsteel.com/kyleYang/category/42719.html孩儿立志Z养I学不成名誓不q? 风华正茂乑֝圎ͼ人生无处不青山? 光阴如同水去,珍惜时光最宝贵? 鹏程万里靠自己,飞黄腾达青少q? zh-cnThu, 04 Feb 2010 08:28:56 GMTThu, 04 Feb 2010 08:28:56 GMT60ibatis的iterate使用http://www.aygfsteel.com/kyleYang/archive/2010/02/02/311688.html飞熊飞熊Tue, 02 Feb 2010 07:49:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2010/02/02/311688.htmlhttp://www.aygfsteel.com/kyleYang/comments/311688.htmlhttp://www.aygfsteel.com/kyleYang/archive/2010/02/02/311688.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/311688.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/311688.htmlIterateQ这属性遍历整个集合,qؓ List 集合中的元素重复元素体的内容?/strong>
Iterate 的属性: 
      prepend  Q?可被覆盖?SQL 语句l成部分Q添加在语句的前面(可选) 
      property  Q?cd?java.util.List 的用于遍历的元素Q必选) 
      open  Q?整个遍历内容体开始的字符Ԍ用于定义括号Q可选) 
      close  Q整个遍历内容体l束的字W串Q用于定义括P可选) 
      conjunction Q?每次遍历内容之间的字W串Q用于定?AND ?ORQ可选) 
      遍历cd?java.util.List的元素?

例子Q?
<iterate prepend=”AND?property=”userNameList?
open=??close=??conjunction=”OR?gt;
username=#userNameList[]#
</iterate>

ibatis中如何配|in语句Q需要P代,不能直接用string的写?br /><select id="sql_test" parameterclass="myPramBean" resultclass="myResult">
select *from tablewhere name in
<iterate property="ids" conjunction="," close=")" open="(" />
#value[]#
</iterate>
and code=#code#
</select>
myPramBean
{
private String code;
private List ids;
...
}

eg:
<delete id="member.batchDelete" parameterClass="java.util.List">
      DELETE FROM member where id IN
      <iterate conjunction="," open="(" close=")" >
          #value[]#
      </iterate>
</delete>

注意Q?/strong>使用<iterate>Ӟ在List元素名后面包括方括号[]非常重要Q方括号[]?br />对象标记为ListQ以防解析器单地List输出成String?br />

飞熊 2010-02-02 15:49 发表评论
]]>
iBatis中的动态查?/title><link>http://www.aygfsteel.com/kyleYang/archive/2010/01/22/310529.html</link><dc:creator>飞熊</dc:creator><author>飞熊</author><pubDate>Fri, 22 Jan 2010 07:30:00 GMT</pubDate><guid>http://www.aygfsteel.com/kyleYang/archive/2010/01/22/310529.html</guid><wfw:comment>http://www.aygfsteel.com/kyleYang/comments/310529.html</wfw:comment><comments>http://www.aygfsteel.com/kyleYang/archive/2010/01/22/310529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kyleYang/comments/commentRss/310529.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kyleYang/services/trackbacks/310529.html</trackback:ping><description><![CDATA[ <p>下面l出几个例子和dtd定义Q?/p> <p><<strong>select</strong> id="selectDispatchedKey" parameterClass="KeyAndKeyFlowInfo" resultMap="KeyAndKeyFlowResult"><br />   select distinct<br />    KEY_ID,<br />    USER_ID,<br />    INITIATOR,<br />    INIT_DATE,<br />    INITIATOR_EMAIL,<br />    SGS_KEY.BRANCH_NAME,<br />    APPROVER,<br />    APPROVER_EMAIL,<br />    APPROVE_DATE<br />   from <br />    SGS_KEY,<br />    SGS_KEY_FLOW<br />   where SGS_KEY.APPLY_FLOW_ID=SGS_KEY_FLOW.KEY_FLOW_ID<br />   <<strong>dynamic</strong><strong>prepend</strong>="and" <strong>open</strong>="(" close=")">   <br />    <<strong><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b></strong> property="ki.userId" prepend="and" <b style="COLOR: black; BACKGROUND-COLOR: #a0ffff">removeFirstPrepend</b>="false"><br />     USER_ID = #ki.userId#<br />    </<strong><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b></strong>><br />    <<strong><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b></strong><strong>property</strong>="kfi.initiator" <strong>prepend</strong>="and"><br />     INITIATOR = #kfi.initiator#<br />    </<strong><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b></strong>><br />    <<strong><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b></strong><strong>property</strong>="kfi.initDate" <strong>prepend</strong>="and"><br />     INIT_DATE = #kfi.initDate#<br />    </<strong><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b></strong>><br />   </<strong>dynamic</strong>><br /></select></p> <p><<strong>update</strong> id="updateKeyFlow" parameterClass="KeyFlowInfo"><br />   update SGS_KEY_FLOW set <br />   <<strong>dynamic</strong>><br />     KEY_FLOW_ID =#keyFlowId#<br />    <<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b> property="branchName" prepend=","><br />     BRANCH_NAME = #branchName#<br />    </<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>><br />    <isNotEqual property="operation" prepend="," compareProperty="operation" compareValue="0"><br />     OPERATION = #operation#<br />    </isNotEqual><br />    <<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b> property="initiator" prepend=","><br />     INITIATOR = #initiator#<br />    </<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>><br />    <<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b> property="initiatorEmail" prepend=","><br />     INITIATOR_EMAIL = #initiatorEmail#<br />    </<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>><br />    <<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b> property="initDate" prepend=","><br />     INIT_DATE = #initDate#<br />    </<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>><br />    <<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b> property="approver" prepend=","><br />     APPROVER = #approver#<br />    </<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>><br />    <<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b> property="approverEmail" prepend=","><br />     APPROVER_EMAIL = #approverEmail#<br />    </<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>><br />    <<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b> property="approveDate" prepend=","><br />     APPROVE_DATE = #approveDate#<br />    </<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>><br />    <isNotEqual property="keyNum" prepend="," compareProperty="keyNum" compareValue="0"><br />     KEY_NUM = #keyNum#<br />    </isNotEqual><br />    <<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b> property="applyReason" prepend=","><br />     APPLY_REASON = #applyReason#<br />    </<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>><br />    <<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b> property="rejectReason" prepend=","><br />     REJECT_REASON = #rejectReason#<br />    </<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>>                        <br />   </<strong>dynamic</strong>><br />   where <br />    KEY_FLOW_ID =#keyFlowId#<br /></update></p> <p> </p> <table style="MARGIN: auto auto auto 17.95pt; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top"> <p> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">属性关键字</span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top"> <p> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">含义</span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"> <span style="COLOR: #ff6600"><isEqual></span> </span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: #ff6600; FONT-FAMILY: 宋体">如果参数相等于?/span> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">则查询条件有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"><isNotEqual></span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">如果参数不等于值则查询条g有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"> <span style="COLOR: #ff6600"><isGreaterThan></span> </span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">如果参数大于值则查询条g有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"><isGreaterEqual></span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">如果参数{于值则查询条g有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"><isLessEqual></span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-FAMILY: 宋体">如果参数于值则查询条g有效。如下所C:</span> </p> <p> <span style="FONT-FAMILY: Times New Roman"><isLessEqual prepend = ”AND?property = ”age?compareValue = ?8?></span> </p> <p> <span style="FONT-FAMILY: Times New Roman">ADOLESCENT = ‘TRUE?/span> </p> <p> <span style="FONT-FAMILY: Times New Roman"></isLessEqual></span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"><isPropertyAvailable></span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">如果参数有用则查询条g有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"><isNotPropertyAvailable></span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">如果参数没有使用则查询条件有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"><isNull></span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">如果参数为NULL则查询条件有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"><<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">isNotNull</b>></span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">如果参数不ؓNULL则查询条件有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"><isEmpty></span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">如果参数为空则查询条件有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="COLOR: #ff6600"> <span style="FONT-FAMILY: Times New Roman"><isNotEmpty></span> </span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: #ff6600; FONT-FAMILY: 宋体">如果参数不ؓI则查询条g有效</span> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">。参数的数据cd?/span> <span style="FONT-FAMILY: Times New Roman">Collection</span> <span style="FONT-FAMILY: 宋体">?/span> <span style="FONT-FAMILY: Times New Roman">String </span> <span style="FONT-FAMILY: 宋体">时参C?/span> <span style="FONT-FAMILY: Times New Roman">NULL</span> <span style="FONT-FAMILY: 宋体">或“”。如下所C:</span> </p> <p> <span style="FONT-FAMILY: Times New Roman"><isNotEmpty prepend=”AND?property=”firstName?></span> </p> <p> <span style="FONT-FAMILY: Times New Roman">FIRST_NAME=#firstName#</span> </p> <p> <span style="FONT-FAMILY: Times New Roman"></isNotEmpty></span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"> <span style="COLOR: #ff6600"><isParameterPresent></span> </span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-SIZE: 12pt; COLOR: #ff6600; FONT-FAMILY: 宋体">如果参数cM为NULL</span> <span style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体">则查询条件有效?/span> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 131.45pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid"> <p> <span style="FONT-FAMILY: Times New Roman"><isNotParameterPresent></span> </p> </td> <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 276.7pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"> <p> <span style="FONT-FAMILY: Times New Roman">Checks to see if the parameter object is not present (null). Example Usage:</span> </p> <p> <span style="FONT-FAMILY: Times New Roman"><isNotParameterPresent prepend=”AND?gt;</span> </p> <p> <span style="FONT-FAMILY: Times New Roman">EMPLOYEE_TYPE = ‘DEFAULT?/span> </p> <p> <span style="FONT-FAMILY: Times New Roman"></isNotParameterPresent></span> </p> </td> </tr> </tbody> </table> <br /> <a >http://203.208.39.132/search?q=cache:c0ebNIxuwRsJ:blog.csdn.net/yangguoqi/archive/2009/04/25/4122824.aspx+isNotNull+removeFirstPrepend&cd=4&hl=zh-CN&ct=clnk&gl=cn&st_usg=ALhdy292qjrM9JyeUS1SW1kaFKLSpEs4-w</a> <br />目的例子:<br />  <statement id="[customerinfo-lookup]" parameterClass="java.util.Map" resultClass="java.util.HashMap"><br />    <![CDATA[<br />   SELECT A.ROW_ID s_CUSTOMER_ID,A.PERMIT_NO s_PERMIT_NO,A.CUSTOMER_DESC s_CUSTOMER_DESC,A.ADDR s_ADDR,<br />     A.CUSTMGR_ID s_CUSTMGR_ID,B.EMPLOYEE_NAME s_CUSTMGR_NAME,A.MARKET_ORG s_MARKET_ORG,C.DEPT_NAME s_DEPT_NAME<br />      FROM MD_CUSTOMER A LEFT JOIN MD_EMPLOYEE B ON A.CUSTMGR_ID=B.ROW_ID LEFT JOIN MD_DEPT C ON A.MARKET_ORG=C.ROW_ID<br />      WHERE 1=1 AND A.STATUS='1'<br />    ]]><br />    <isNotEmpty prepend="and" property="custmgrID"><br />      <![CDATA[ A.CUSTMGR_ID=#custmgrID# ]]><br />    </isNotEmpty><br />    <isNotNull property="filter" removeFirstPrepend="true" prepend="AND" open="(" close=")"> <br />   <isNotEmpty prepend="OR" property="filter.m_PERMIT_NO"><br />     <![CDATA[ A.PERMIT_NO LIKE '%$filter.m_PERMIT_NO$%' ]]><br />   </isNotEmpty><br />   <isNotEmpty prepend="OR" property="filter.m_CUSTOMER_DESC"><br />     <![CDATA[ A.CUSTOMER_DESC LIKE '%$filter.m_CUSTOMER_DESC$%' ]]><br />   </isNotEmpty><br />   <isNotEmpty prepend="OR" property="filter.s_PLACE_NAME"><br />     <![CDATA[ A.ADDR LIKE '%$filter.m_ADDR$%' ]]><br />   </isNotEmpty><br />    </isNotNull><br />    <isNotNull prepend="ORDER BY" property="sort"> <!--排序--><br />      $sort$<br />    </isNotNull><br />  </statement><img src ="http://www.aygfsteel.com/kyleYang/aggbug/310529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kyleYang/" target="_blank">飞熊</a> 2010-01-22 15:30 <a href="http://www.aygfsteel.com/kyleYang/archive/2010/01/22/310529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat下JNDI 配置 DBCP q接?/title><link>http://www.aygfsteel.com/kyleYang/archive/2009/12/14/305835.html</link><dc:creator>飞熊</dc:creator><author>飞熊</author><pubDate>Mon, 14 Dec 2009 02:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/kyleYang/archive/2009/12/14/305835.html</guid><wfw:comment>http://www.aygfsteel.com/kyleYang/comments/305835.html</wfw:comment><comments>http://www.aygfsteel.com/kyleYang/archive/2009/12/14/305835.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kyleYang/comments/commentRss/305835.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kyleYang/services/trackbacks/305835.html</trackback:ping><description><![CDATA[ <span style="COLOR: #0000ff">Tomcat 的配|如下:Q在某个App的context.xml中,或某个虚拟主机的ROOT.xml中)<br /><?</span> <span style="COLOR: #ff00ff">xml version="1.0" encoding="UTF-8"</span> <span style="COLOR: #0000ff">?></span> <span style="COLOR: #000000"> <br /> </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">Context </span> <span style="COLOR: #ff0000">path</span> <span style="COLOR: #0000ff">=""</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br />     </span> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">Resource </span> <span style="COLOR: #ff0000">name</span> <span style="COLOR: #0000ff">="jdbc/pgsqldbcp"</span> <span style="COLOR: #ff0000"> <br />               auth</span> <span style="COLOR: #0000ff">="Container"</span> <span style="COLOR: #ff0000"> <br />               type</span> <span style="COLOR: #0000ff">="javax.sql.DataSource"</span> <span style="COLOR: #ff0000"> <br />               factory</span> <span style="COLOR: #0000ff">="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"</span> <span style="COLOR: #ff0000"> <br />               driverClassName</span> <span style="COLOR: #0000ff">="org.postgresql.Driver"</span> <span style="COLOR: #ff0000"> <br />               url</span> <span style="COLOR: #0000ff">="jdbc:postgresql://localhost/xxxxdb"</span> <span style="COLOR: #ff0000"> <br />               username</span> <span style="COLOR: #0000ff">="postgres"</span> <span style="COLOR: #ff0000"> <br />               password</span> <span style="COLOR: #0000ff">="xxxx"</span> <span style="COLOR: #ff0000"> <br />               maxActive</span> <span style="COLOR: #0000ff">="20"</span> <span style="COLOR: #ff0000"> <br />     </span> <span style="COLOR: #0000ff">/></span> <span style="COLOR: #000000"> <br /> </span> <span style="COLOR: #0000ff"></</span> <span style="COLOR: #800000">Context</span> <span style="COLOR: #0000ff">><br />q里使用Tomcat带的tomcat-dbcp.jar包,它包含了 commons-collections.jar, commons-pool.jar, commons-dbcp.jarQ如果不使用tomcat-dbcp.jar 则需要将上述3个包拯?Tomcat的lib中。另外把数据库的驱动包拷贝到Tomcat的lib中,可以了?br /><br />在开发中spring中的dataSource可以按如下Ş式写Q?br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">bean </span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="dataSource"</span><span style="COLOR: #ff0000"> class</span><span style="COLOR: #0000ff">="org.springframework.jndi.JndiObjectFactoryBean"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="jndiName"</span><span style="COLOR: #ff0000"> value</span><span style="COLOR: #0000ff">="java:comp/env/jdbc/pgsqldbcp"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">></span></span> <img src ="http://www.aygfsteel.com/kyleYang/aggbug/305835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kyleYang/" target="_blank">飞熊</a> 2009-12-14 10:04 <a href="http://www.aygfsteel.com/kyleYang/archive/2009/12/14/305835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title><datasource>元素http://www.aygfsteel.com/kyleYang/archive/2009/12/09/305261.html飞熊飞熊Wed, 09 Dec 2009 04:01:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2009/12/09/305261.htmlhttp://www.aygfsteel.com/kyleYang/comments/305261.htmlhttp://www.aygfsteel.com/kyleYang/archive/2009/12/09/305261.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/305261.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/305261.htmlJDBC方式基本配置都很单,weblogic的数据源JNDI名字是:TestDatasource
那么ibatis的SqlMapConfig.xml的配|如?br />
    <transactionManager type="JDBC" >
        
<dataSource type="JNDI">
            
<property name="context.java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory" />
            
<property name="context.java.naming.provider.url" value="t3://localhost:7001" />
            
<property name="DataSource" value="TestDatasource" />
        
</dataSource>
    
</transactionManager>


<transactionManager type="JTA" >
<property name="UserTransaction" value="java:/ctx/con/UserTransaction"/>
<dataSource type="JNDI">
<property name="DataSource" value="java:comp/env/jdbc/jpetstore"/>
</dataSource>
</transactionManager>
注意QUserTransaction属性指向UserTransaction实例所在的JNDI位置。JTA事务理需要它Q以使SQL Map能够参与涉及其他数据库和事务资源的范围更大的事务?img src ="http://www.aygfsteel.com/kyleYang/aggbug/305261.html" width = "1" height = "1" />

飞熊 2009-12-09 12:01 发表评论
]]>
spring+ibatis实例http://www.aygfsteel.com/kyleYang/archive/2009/11/12/302159.html飞熊飞熊Thu, 12 Nov 2009 15:46:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2009/11/12/302159.htmlhttp://www.aygfsteel.com/kyleYang/comments/302159.htmlhttp://www.aygfsteel.com/kyleYang/archive/2009/11/12/302159.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/302159.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/302159.html阅读全文

飞熊 2009-11-12 23:46 发表评论
]]>
ibatis与spring的整?/title><link>http://www.aygfsteel.com/kyleYang/archive/2009/11/12/302157.html</link><dc:creator>飞熊</dc:creator><author>飞熊</author><pubDate>Thu, 12 Nov 2009 15:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/kyleYang/archive/2009/11/12/302157.html</guid><wfw:comment>http://www.aygfsteel.com/kyleYang/comments/302157.html</wfw:comment><comments>http://www.aygfsteel.com/kyleYang/archive/2009/11/12/302157.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kyleYang/comments/commentRss/302157.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kyleYang/services/trackbacks/302157.html</trackback:ping><description><![CDATA[<p>Spring<span style="font-family: 宋体">通过</span>DAO<span style="font-family: 宋体">模式Q提供了?/span>iBATIS<span style="font-family: 宋体">的良好支持?/span>SqlMapClient<span style="font-family: 宋体">对象?/span>iBATIS<span style="font-family: 宋体">中的主要对象Q我们可以通过配置?/span>spring<span style="font-family: 宋体">来管?/span>SqlMapClient<span style="font-family: 宋体">对象的创建?/span></p> <p><span style="font-family: 宋体">?/span>hibernate<span style="font-family: 宋体">cMQ?/span>Spring <span style="font-family: 宋体">提供?/span><span style="font-size: 10pt; background: silver; color: #000000; font-family: 'Courier New'">SqlMapClientDaoSupport</span><span style="font-size: 10pt; color: black; font-family: 宋体">对象Q我们的</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">DAO</span><span style="font-size: 10pt; color: black; font-family: 宋体">可以l承q个c,通过它所提供?/span><span style="font-size: 10pt; background: silver; color: black; font-family: 'Courier New'">SqlMapClientTemplate</span><span style="font-size: 10pt; color: black; font-family: 宋体">对象来操U|据库。看hq些概念都与</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">hibernate</span><span style="font-size: 10pt; color: black; font-family: 宋体">cM?/span></p> <p><span style="font-size: 10pt; color: black; font-family: 宋体">通过</span><span style="font-size: 10pt; background: silver; color: black; font-family: 'Courier New'">SqlMapClientTemplate</span><span style="font-size: 10pt; color: black; font-family: 宋体">来操U|据库?/span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">CRUD</span><span style="font-size: 10pt; color: black; font-family: 宋体">是没有问题的Q这里面关键的问题是事务处理?/span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">Spring</span><span style="font-size: 10pt; color: black; font-family: 宋体">提供了强大的声明式事务处理的功能Q我们已l清?/span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">hibernate</span><span style="font-size: 10pt; color: black; font-family: 宋体">中如何配|声明式的事务,那么?/span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">iBATIS</span><span style="font-size: 10pt; color: black; font-family: 宋体">中如何获得声明式事务的能力呢Q?/span></p> <p><span style="font-size: 10pt; color: black; font-family: 宋体">W一Q我们需要了解的?/span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">spring</span><span style="font-size: 10pt; color: black; font-family: 宋体">通过</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">AOP</span><span style="font-size: 10pt; color: black; font-family: 宋体">来拦截方法的调用Q从而在q些Ҏ上面d声明式事务处理的能力。典型配|如下:</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">applicationContext-common.xml</span></p> <table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0cm; border-bottom: windowtext 1pt solid" valign="top" width="568"> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'"><!-- </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体">配置事务Ҏ?/span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'"> --></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">tx:advice </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"txAdvice" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">transaction-manager</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"</span><em><span style="font-size: 10pt; color: red; font-family: 宋体">事务理器名U?/span></em><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">        </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">tx:attributes</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">           </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">tx:method </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"add*" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">propagation</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"REQUIRED"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">           </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">tx:method </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"del*" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">propagation</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"REQUIRED"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">           </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">tx:method </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"update*" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">propagation</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"REQUIRED"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">           </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">tx:method </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"*" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">read-only</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"true"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">       </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">tx:attributes</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">tx:advice</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'"><!-- </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体">配置哪些cȝҎ需要进行事务管?/span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'"> --></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">aop:config</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">       </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">aop:pointcut </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"allManagerMethod" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">expression</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"execution(* com.ibatis.manager.*.*(..))"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">       </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">aop:advisor </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">advice-ref</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"txAdvice" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">pointcut-ref</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"allManagerMethod"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">aop:config</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> </td> </tr> </tbody> </table> <p><span style="font-family: 宋体">q些事务都是声明在业务逻辑层的对象上的?/span></p> <p><span style="font-family: 宋体">W二Q我们需要一个事务管理器Q对事务q行理?/span></p> <table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0cm; border-bottom: windowtext 1pt solid" valign="top" width="568"> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">bean </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"txManager" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">class</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"org.springframework.jdbc.datasource.DataSourceTransactionManager"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">property </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"dataSource" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">ref</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"dataSource"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">bean</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">bean </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"dataSource" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">class</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"org.apache.commons.dbcp.BasicDataSource"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">        </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">property </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"driverClassName" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">value</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"com.mysql.jdbc.Driver"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">        </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">property </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"url" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">value</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"jdbc:mysql://127.0.0.1/ibatis"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">        </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">property </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"username" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">value</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"root"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">        </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">property </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"password" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">value</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"mysql"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">bean</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> </td> </tr> </tbody> </table> <p><span style="font-family: 宋体">此后Q我们需要让</span>spring<span style="font-family: 宋体">来管?/span>SqlMapClient<span style="font-family: 宋体">对象Q?/span></p> <table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0cm; border-bottom: windowtext 1pt solid" valign="top" width="568"> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">bean </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"sqlMapClient" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">class</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"org.springframework.orm.ibatis.SqlMapClientFactoryBean"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">       </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">property </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"configLocation"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">value</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">classpath:sqlMapConfig.xml</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">value</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">property</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">bean</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> </td> </tr> </tbody> </table> <p><span style="font-family: 宋体">我们?/span>sqlMapConfig.xml<span style="font-family: 宋体">可以简写ؓQ?/span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><?</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">xml </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">version</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"1.0" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">encoding</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"UTF-8" </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">?></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><!</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">DOCTYPE </span><span style="font-size: 10pt; color: navy; font-family: 'Courier New'">sqlMapConfig      </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: navy; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: gray; font-family: 'Courier New'">PUBLIC </span><span style="font-size: 10pt; color: navy; font-family: 'Courier New'">"-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: navy; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: #3f7f5f; font-family: 'Courier New'">"http://ibatis.apache.org/dtd/sql-map-config-2.dtd"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">sqlMapConfig</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">settings </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">       </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">lazyLoadingEnabled</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"true"</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">        </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">useStatementNamespaces</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"true" </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'"><!-- </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体">使用</span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'">spring</span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体">之后Q数据源的配|移植到?/span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'">spring</span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体">上,所?/span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'">iBATIS</span><span style="font-size: 10pt; color: #3f5fbf; font-family: 宋体">本n的配|可以取?/span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'"> --></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">  </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">sqlMap </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">resource</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"com/ibatis/dao/impl/ibatis/User.xml"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">sqlMapConfig</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p><span style="font-size: 10pt; background: #d9d9d9; color: black; font-family: 'Courier New'">User.xml:</span><span style="font-size: 10pt; background: #d9d9d9; color: black; font-family: 宋体">如下</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><?</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">xml </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">version</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"1.0" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">encoding</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"UTF-8" </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">?></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><!</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">DOCTYPE </span><span style="font-size: 10pt; color: navy; font-family: 'Courier New'">sqlMap      </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: navy; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: gray; font-family: 'Courier New'">PUBLIC </span><span style="font-size: 10pt; color: navy; font-family: 'Courier New'">"-//ibatis.apache.org//DTD SQL Map 2.0//EN"      </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: navy; font-family: 'Courier New'">    </span><span style="font-size: 10pt; color: #3f7f5f; font-family: 'Courier New'">"http://ibatis.apache.org/dtd/sql-map-2.dtd"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">sqlMap </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">namespace</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"User"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'"><!-- Use type aliases to avoid typing the full classname every time. --></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">typeAlias </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">alias</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"User" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">type</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"com.ibatis.User"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">/></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: #3f5fbf; font-family: 'Courier New'"><!-- Select with no parameters using the result map for Account class. --></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">select </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"selectAllUsers" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">resultClass</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"User"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">    select * from t_user</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">select</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">select </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"selectUser" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">resultClass</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"User" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">parameterClass</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"int"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">  select * from t_user where id=#id#</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">select</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">insert </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"insertUser" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">parameterClass</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"User"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">  insert into t_user values (</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">       null,#username#,#password#</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">  )</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">insert</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">update </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"updateUser" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">parameterClass</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"User"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">  update t_user set username = #username#,password=#password#</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">  where id=#id#</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">  </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">update</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"><</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">delete </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">id</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"deleteUser" </span><span style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">parameterClass</span><span style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"int"</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'">  delete from t_user where id=#id#</span></p> <p style="text-align: left" align="left"><span style="font-size: 10pt; color: black; font-family: 'Courier New'"> </span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">delete</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p><span style="font-size: 10pt; color: teal; font-family: 'Courier New'"></</span><span style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">sqlMap</span><span style="font-size: 10pt; color: teal; font-family: 'Courier New'">></span></p> <p><span style="font-family: 宋体">我们?/span>DAO<span style="font-family: 宋体">的编写:</span></p> <table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0cm; border-bottom: windowtext 1pt solid" valign="top" width="568"> <p>package com.iabtis.dao.impl.ibatis;</p> <p>import java.util.List;</p> <p>import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;</p> <p>import com.ibatis.dao.UserDAO;</p> <p>import com.ibatis.crm.model.User;</p> <p>public class UserDAOImpl extends SqlMapClientDaoSupport implements UserDAO {</p> <p>    public void select(User user) {</p> <p>              getSqlMapClientTemplate().delete("<span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">selectUser</span> ",user.getId());</p> <p>       }</p> <p>   public List findAll() {</p> <p>              return getSqlMapClientTemplate().queryForList("<span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">selectAllUsers</span> ");</p> <p>       }</p> <p>       public void delete(User user) {</p> <p>              getSqlMapClientTemplate().delete("<span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">deleteUser</span> ",user.getId());</p> <p>       }</p> <p>       public void save(User user) {</p> <p>              getSqlMapClientTemplate().insert("<span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">insertUser</span> ",user);</p> <p>       }</p> <p>       public void update(User user) {</p> <p>              getSqlMapClientTemplate().update("<span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">updateUser</span> ",user);</p> <p>       }</p> <p>}</p> </td> </tr> </tbody> </table> <p><span style="font-family: 宋体">l承</span>SqlMapClientDaoSupport<span style="font-family: 宋体">Q要求我们注?/span>SqlMapClient<span style="font-family: 宋体">对象Q因此,需要有如下?/span>DAO<span style="font-family: 宋体">配置Q?/span></p> <table style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 426.1pt; padding-top: 0cm; border-bottom: windowtext 1pt solid" valign="top" width="568"> <p><bean id="userDAO" class="com.ibatils.dao.impl.ibatis.UserDAOImpl"></p> <p>     <property name=”<span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">sqlMapClient</span>” ref=”<span style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">sqlMapClient</span>”/></p> <p></bean></p> </td> </tr> </tbody> </table> <p><span style="font-family: 宋体">q就是所有需要注意的问题了,此后可以在业务逻辑层调?/span>DAO<span style="font-family: 宋体">对象了!</span></p> <img src ="http://www.aygfsteel.com/kyleYang/aggbug/302157.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kyleYang/" target="_blank">飞熊</a> 2009-11-12 23:45 <a href="http://www.aygfsteel.com/kyleYang/archive/2009/11/12/302157.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring+ibatis或jdbc配置proxoolq接?http://www.aygfsteel.com/kyleYang/archive/2009/11/12/302158.html飞熊飞熊Thu, 12 Nov 2009 15:45:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2009/11/12/302158.htmlhttp://www.aygfsteel.com/kyleYang/comments/302158.htmlhttp://www.aygfsteel.com/kyleYang/archive/2009/11/12/302158.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/302158.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/302158.html   <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close">
        
<property name="driver"><value>net.sourceforge.jtds.jdbc.Driver</value></property>
        
<property name="driverUrl"><value>jdbc:jtds:sqlserver://server:1433;socketTimeout=20;loginTimeout=10</value></property>
        <property name="user"><value>someusername/value></property>
        
<property name="password"><value>somepassword</value></property>
    
</bean>

飞熊 2009-11-12 23:45 发表评论
]]>
SqlMapClient对象http://www.aygfsteel.com/kyleYang/archive/2009/11/12/302156.html飞熊飞熊Thu, 12 Nov 2009 15:44:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2009/11/12/302156.htmlhttp://www.aygfsteel.com/kyleYang/comments/302156.htmlhttp://www.aygfsteel.com/kyleYang/archive/2009/11/12/302156.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/302156.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/302156.html阅读全文

飞熊 2009-11-12 23:44 发表评论
]]>
Ibatis使用知识ȝhttp://www.aygfsteel.com/kyleYang/archive/2009/11/12/302119.html飞熊飞熊Thu, 12 Nov 2009 09:00:00 GMThttp://www.aygfsteel.com/kyleYang/archive/2009/11/12/302119.htmlhttp://www.aygfsteel.com/kyleYang/comments/302119.htmlhttp://www.aygfsteel.com/kyleYang/archive/2009/11/12/302119.html#Feedback0http://www.aygfsteel.com/kyleYang/comments/commentRss/302119.htmlhttp://www.aygfsteel.com/kyleYang/services/trackbacks/302119.html 2 . 新徏一个工E, 我们如果要进行ibatis相关的操作, ׃个要导入ibatis-2.3.3.720.jar
3 . 建立pojo与pojo.xml形成映射.
4.  一般一个pojo对应一个pojo.xmlQ?例如.User.java.与User.xml
pojo的类最好实现java.io.Serializable接口Q?以备应用Ӟ q一步的扩展Q?q要提供一个缺省的构造方?I构造方??
5. ibatis的配|文?SqlMapConfig.xmlQ?q个文g一般放到src?
<?xml version="1.0" encoding="UTF-8" >
<!DOCTYPE sqlMapConfig     
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"     
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

  <!-- Configure a built-in transaction manager.  If you're using an
       app server, you probably want to use its transaction manager
       and a managed datasource --
        <properties resource="dbconfig.properties"/>/*数据库的驱动配置文g,一般与SqlMapConfig.xml是同一U目?/
                                                  
  <transactionManager type="JDBC" commitRequired="false">
    <dataSource type="SIMPLE">
      <property name="JDBC.Driver" value="${driver}"/>
      <property name="JDBC.ConnectionURL" value="${url}"/>
      <property name="JDBC.Username" value="${user}"/>
      <property name="JDBC.Password" value="${password}"/>/*配置文g的Key*/
    </dataSource>
  </transactionManager>
  
 
  <sqlMap resource="com/lxit/test/LXGroup.xml"/>

  /*指定pojo的映文?  q句话一定要加上Q?否则Q?找不到配|文Ӟ包名/cd.xml*/
</sqlMapConfig>
LXGroup.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMap     
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"     
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="LXGroup">

    <typeAlias alias="LXGroup" type="com.lxitedu.pojo.permission.LXGroup" />
     cd别名 Q?Z个pojocd一个别名, 以便在下面用时候, 直接用别名引用对?上面的解?
    <resultMap class="LXGroup" id="paginationList">
        <result property="groupId" column="ID" />
        <result property="groupName" column="groupName" />
        <result property="description" column="description" />
    </resultMap>
     数据q回cdQ我用的是一张表 Q?id 与select 标签的id一_ 可以指定返回是多个pojo
    <select id="userGroupRowCount" resultClass="int">
        select count(*) from userGroup
    </select>
     我们可以Q?Ҏ自己的SQL查询语句Q?及传入的参数来决定它的返回类型,
       resutlClass="q回cd" parameterClass="传入的参数类?
    <select id="userGroupList" resultMap="paginationList">
        select * from userGroup
     </select>
    <delete id="deleteUserGroup" parameterClass="String">
        delete from userGroup where groupName=#value#
            #value#由方法的传入参数填充
     </delete>
    <select id="userGroup" parameterClass="String"
        resultClass="LXGroup">
        select ID as groupId,groupName as groupName,description as description from
        userGroup where groupName=#value#
     </select>
    <insert id="addUserGroup" parameterClass="com.lxitedu.pojo.permission.LXGroup">
        insert into userGroup(groupName,description)values
        (#groupName#,## where
        ID=#groupId#
     </update>description#)
        <selectKey resultClass="int" keyProperty="groupId">
            select LAST_INSERT_ID() as value
      </selectKey>(q是主键自动增长)
    </insert>
    <update id="updateUserGroup" parameterClass="LXGroup">
        update userGroup set groupName=#groupName#,description=#description
</sqlMap>
6. q里所有配|文仉完成?
之后是得到SqlMapClient对象Q?调用相应的方法, 完成相应操作
private static SqlMapClient sqlMapper;
    public static synchronized SqlMapClient getSqlMapClientInstance()
    {  
          if(sqlMapper==null)
          {
              try {
                  Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
                  sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
                  reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
          }
            return sqlMapper;
    }


                         ibatis与spring的整?

1. ibatis与spring整合, 我们要导入相应的jar.commons-dbcp-1.2.jar,commons-pool-1.4.jar,spring2.5.5.jar,q些是Spring的jar
2. 要想spring与ibatis整合hQ?我们只需修改一下配|文件就可以了,如果成功之后Q?我们׃发现Q?他会使的我们的程序越来越?
W一步:在SqlMapConfig.xml?Q?要删?q接数据库驱动?
W二步:在ApplicationContext.xml里修攚w?

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
        <property name="ignoreResourceNotFound" value="true" />
        <property name="locations">
            <list>
                <value>classpath:dbconfig.properties</value>
            </list>
        </property>
    </bean>
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName">
            <value>${driver}</value>
        </property>
        <property name="url">
            <value>${url}</value>
        </property>
        <property name="username">
            <value>${user}</value>
        </property>
        <property name="password">
            <value>${password}</value>
        </property>
    </bean>
W三步: 整合ibatis与spring
  <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    <property name="configLocation" value="classpath:SqlMapConfig.xml"/>Qsrc下)
    <property name="dataSource" ref="dataSource"/>
  </bean>

W四步:修改实例对象方式
如果是单独的ibatisQ?我们要通过dSqlMapConfig.xml来得到SqlMapConfig来得到SqlMapClient对象
现在与spring整合之间Q?我们只需要修改类的承关pd可以了, 一般承SqlMapClientDaoSupport
this.getSqlMapClient()可以实现得到数据库的操作对象,化了操作?
W五步:在sqlmapconfig.xml里面我们只要写映pojo.xml的\径就可以了?

飞熊 2009-11-12 17:00 发表评论
]]>
վ֩ģ壺 | | | ¹| | ־| ˮ| İ| | ʳ| | ׿| | | | ɽ| ˮ| | ˼| Ͽ| °| ̩| ͷ| ̨| | Ҧ| ʯ| ѭ| | | | | | մ| Ǭ| | | ;| | °| ɽ|