<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[21 工作室 - 其它框架]]></title>
  <subtitle type="html"><![CDATA[本站承接网页制作、软件项目开发、代写代码等业务，我们将和您真诚合作，以最低的价格提供最优越的服务。13488846575   联系人:潘劲]]></subtitle>
  <id>http://www.is21.cn/</id> 
  <link rel="alternate" type="text/html" href="http://www.is21.cn/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.is21.cn/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.4.1022">PJBlog2</generator> 
  <updated>2007-09-01T00:41:10+08:00</updated> 

  <entry>
	  <title type="html"><![CDATA[iBatis学习小结]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=7" label="其它框架" /> 
	  <updated>2007-09-01T00:41:10+08:00</updated>
	  <published>2007-09-01T00:41:10+08:00</published>
		  <summary type="html"><![CDATA[sqlMap文件&nbsp;<br/><br/>代码<br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;&nbsp;?&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;!DOCTYPE&nbsp;sqlMap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;PUBLIC&nbsp;&#34;-//ibatis.apache.org//DTD&nbsp;SQL&nbsp;Map&nbsp;2.0//EN&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://ibatis.apache.org/dtd/sql-map-2.dtd" target="_blank">http://ibatis.apache.org/dtd/sql-map-2.dtd</a>&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sqlMap&nbsp;namespace=&#34;Account&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;typeAlias&nbsp;alias=&#34;Account&#34;&nbsp;type=&#34;test.Account&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;!--列表查询,返回Account&nbsp;Object的List--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;resultMap&nbsp;id=&#34;AccountResult&#34;&nbsp;class=&#34;Account&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;id&#34;&nbsp;column=&#34;ID&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;firstName&#34;&nbsp;column=&#34;FIRST_NAME&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;lastName&#34;&nbsp;column=&#34;LAST_NAME&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;emailAddress&#34;&nbsp;column=&#34;EMAIL&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/resultMap&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;sel&#101;ct&nbsp;id=&#34;sel&#101;ctAllAccounts&#34;&nbsp;resultMap=&#34;AccountResult&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;ACCOUNT&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;!--列表查询,返回HashMap的List&nbsp;--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;!--resultMap无需再通过JDBC&nbsp;ResultSetMetaData&nbsp;来动态获取字段信息，性能有提高--&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;resultMap&nbsp;id=&#34;mapResult&#34;&nbsp;class=&#34;java.util.HashMap&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;roleid&#34;&nbsp;column=&#34;ROLEID&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;rolename&#34;&nbsp;column=&#34;ROLENAME&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;id&#34;&nbsp;column=&#34;ID&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;firstName&#34;&nbsp;column=&#34;FIRST_NAME&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;lastName&#34;&nbsp;column=&#34;LAST_NAME&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;emailAddress&#34;&nbsp;column=&#34;EMAIL&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;dt&#34;&nbsp;column=&#34;DT&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/resultMap&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;sel&#101;ct&nbsp;id=&#34;sel&#101;ctAllAccountsWithMap&#34;&nbsp;resultMap=&#34;mapResult&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&nbsp;B.ROLEID,&nbsp;B.ROLENAME,&nbsp;A.ID,&nbsp;A.FIRST_NAME,A.LAST_NAME,A.EMAIL,A.DT&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;ACCOUNT&nbsp;A&nbsp;left&nbsp;outer&nbsp;join&nbsp;ROLE&nbsp;B&nbsp;&nbsp;&nbsp;on&nbsp;A.ROLEID&nbsp;=&nbsp;B.ROLEID&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&#114;DER&nbsp;BY&nbsp;A.ID&nbsp;DESC&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&lt;!--动态构造查询条件--&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sel&#101;ct&nbsp;id=&#34;getUsers&#34;&nbsp;parameterClass=&#34;user&#34;&nbsp;resultMap=&#34;get-user-result&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct&nbsp;id,name,sex&nbsp;from&nbsp;t_user&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;dynamic&nbsp;prepend=&#34;Wh&#101;re&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;isNotEmpty&nbsp;prepend=&#34;AND&#34;&nbsp;property=&#34;name&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(name&nbsp;like&nbsp;#name#)&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/isNotEmpty&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;isNotEmpty&nbsp;prepend=&#34;AND&#34;&nbsp;property=&#34;address&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(address&nbsp;like&nbsp;#address#)&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/isNotEmpty&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dynamic&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;isNotEmpty&nbsp;prepend=&#34;AND&#34;&nbsp;property=&#34;name&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;name=#name#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;isNotEmpty&nbsp;prepend=&#34;AND&#34;&nbsp;property=&#34;address&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address=#address#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/isNotEmpty&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;<br/>&lt;/isNotEmpty&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sel&#101;ct&nbsp;id=&#34;dynamicGetAccountList&#34;&nbsp;resultMap=&#34;account-result&#34;&nbsp;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;ACCOUNT&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;dynamic&nbsp;prepend=&#34;Wh&#101;re&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;isNotNull&nbsp;prepend=&#34;AND&#34;&nbsp;property=&#34;firstName&#34;&nbsp;open=”(“&nbsp;close=”)”&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACC_FIRST_NAME&nbsp;=&nbsp;#firstName#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;isNotNull&nbsp;prepend=&#34;OR&#34;&nbsp;property=&#34;lastName&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACC_LAST_NAME&nbsp;=&nbsp;#lastName#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/isNotNull&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/isNotNull&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;isNotNull&nbsp;prepend=&#34;AND&#34;&nbsp;property=&#34;emailAddress&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACC_EMAIL&nbsp;like&nbsp;#emailAddress#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/isNotNull&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;isGreaterThan&nbsp;prepend=&#34;AND&#34;&nbsp;property=&#34;id&#34;&nbsp;compareValue=&#34;0&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACC_ID&nbsp;=&nbsp;#id#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/isGreaterThan&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dynamic&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;o&#114;der&nbsp;by&nbsp;ACC_LAST_NAME&nbsp;&nbsp;&nbsp;&nbsp;<br/>&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;isParameterPresent&gt;&nbsp;&lt;isNotParameterPresent&gt;&nbsp;&lt;isNull&gt;&nbsp;&lt;isNotNull&gt;&nbsp;&lt;isEmpty&gt;&nbsp;&lt;isNotEmpty&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;isEqual&gt;&nbsp;&lt;isNotEqual&gt;&nbsp;&lt;isGreaterThan&gt;&nbsp;&lt;isGreaterEqual&gt;&nbsp;&lt;isLessThan&gt;&nbsp;&lt;isLessEqual&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;!--&nbsp;Sql片段的是用--&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sql&nbsp;id=&#34;sel&#101;ctItem_fragment&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;FROM&nbsp;items&nbsp;Wh&#101;re&nbsp;parentid&nbsp;=&nbsp;6&nbsp;&nbsp;&nbsp;<br/>&lt;/sql&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sel&#101;ct&nbsp;id=&#34;sel&#101;ctItemCount&#34;&nbsp;resultClass=&#34;int&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct&nbsp;COUNT(*)&nbsp;AS&nbsp;total&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;refid=&#34;sel&#101;ctItem_fragment&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sel&#101;ct&nbsp;id=&#34;sel&#101;ctItems&#34;&nbsp;resultClass=&#34;Item&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct&nbsp;id,&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;refid=&#34;sel&#101;ctItem_fragment&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;!--缓存--&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;cacheModel&nbsp;id=&#34;product-cache&#34;&nbsp;type=&#34;LRU&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;flushInterval&nbsp;hours=&#34;24&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;flushOnExecute&nbsp;statement=&#34;ins&#101;rtProduct&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;flushOnExecute&nbsp;statement=&#34;up&#100;ateProduct&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;flushOnExecute&nbsp;statement=&#34;del&#101;teProduct&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=”size”&nbsp;value=”1000”&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;/cacheModel&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sel&#101;ct&nbsp;id=”getProductList”&nbsp;parameterClass=”int”&nbsp;cacheModel=”product-cache”&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;PRODUCT&nbsp;wh&#101;re&nbsp;PRD_CAT_ID&nbsp;=&nbsp;#value#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;!—对XML支持&nbsp;--&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sel&#101;ct&nbsp;id=&#34;getPerson&#34;&nbsp;parameterClass=”int”&nbsp;resultClass=&#34;xml&#34;&nbsp;xmlResultName=”person”&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;PER_ID&nbsp;as&nbsp;id,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;PER_FIRST_NAME&nbsp;as&nbsp;firstName,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;PER_LAST_NAME&nbsp;as&nbsp;lastName,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;PER_BIRTH_DATE&nbsp;as&nbsp;birthDate,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;PER_WEIGHT_KG&nbsp;as&nbsp;weightInKilograms,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;PER_HEIGHT_M&nbsp;as&nbsp;heightInMeters&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;FROM&nbsp;PERSON&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Wh&#101;re&nbsp;PER_ID&nbsp;=&nbsp;#value#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;person&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;1&lt;/id&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;firstName&gt;Clinton&lt;/firstName&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;lastName&gt;Begin&lt;/lastName&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;birthDate&gt;1900-01-01&lt;/birthDate&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;weightInKilograms&gt;89&lt;/weightInKilograms&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;heightInMeters&gt;1.77&lt;/heightInMeters&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;/person&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;!—字符串替换&nbsp;&nbsp;&nbsp;&nbsp;<br/>sel&#101;ct&nbsp;*&nbsp;from&nbsp;$tableName$&nbsp;&nbsp;&nbsp;&nbsp;<br/>Important&nbsp;Note&nbsp;1:&nbsp;This&nbsp;support&nbsp;will&nbsp;only&nbsp;substitute&nbsp;Strings,&nbsp;so&nbsp;it&nbsp;is&nbsp;not&nbsp;appropriate&nbsp;for&nbsp;complex&nbsp;data&nbsp;types&nbsp;like&nbsp;Date&nbsp;o&#114;&nbsp;Timestamp.&nbsp;&nbsp;&nbsp;&nbsp;<br/>Important&nbsp;Note&nbsp;2:&nbsp;If&nbsp;you&nbsp;use&nbsp;this&nbsp;support&nbsp;to&nbsp;alt&#101;r&nbsp;a&nbsp;table&nbsp;name,&nbsp;o&#114;&nbsp;a&nbsp;column&nbsp;list,&nbsp;in&nbsp;an&nbsp;SQL&nbsp;sel&#101;ct&nbsp;statement,then&nbsp;you&nbsp;should&nbsp;always&nbsp;specify&nbsp;remapResults=“true”&nbsp;&nbsp;&nbsp;&nbsp;<br/>--&gt;.&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;!—关联查询方式，有1/N问题--&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sqlMap&nbsp;namespace=&#34;User&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;typeAlias&nbsp;alias=&#34;user&#34;&nbsp;type=&#34;com.ibatis.sample.User&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;typeAlias&nbsp;alias=&#34;address&#34;&nbsp;type=&#34;com.ibatis.sample.Address&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;resultMap&nbsp;id=&#34;get-user-result&#34;&nbsp;class=&#34;user&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;id&#34;&nbsp;column=&#34;id&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;name&#34;&nbsp;column=&#34;name&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;sex&#34;&nbsp;column=&#34;sex&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;addresses&#34;&nbsp;column=&#34;id&#34;&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct=&#34;User.getAddressByUserId&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/resultMap&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sel&#101;ct&nbsp;id=&#34;getUsers&#34;&nbsp;&nbsp;&nbsp;parameterClass=&#34;java.lang.String&#34;&nbsp;resultMap=&#34;get-user-result&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;![CDATA[Sel&#101;ct&nbsp;id,name,sex&nbsp;from&nbsp;t_user&nbsp;wh&#101;re&nbsp;id&nbsp;=&nbsp;#id#]]&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sel&#101;ct&nbsp;id=&#34;getAddressByUserId&#34;&nbsp;parameterClass=&#34;int&#34;&nbsp;resultClass=&#34;address&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;![CDATA[sel&#101;ct&nbsp;address,zipcode&nbsp;from&nbsp;t_address&nbsp;wh&#101;re&nbsp;user_id&nbsp;=&nbsp;#userid#&nbsp;]]&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;/sqlMap&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;resultMap&nbsp;id=&#34;get-user-result&#34;&nbsp;class=&#34;user&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;id&#34;&nbsp;column=&#34;id&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;name&#34;&nbsp;column=&#34;name&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;sex&#34;&nbsp;column=&#34;sex&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;address&#34;&nbsp;column=&#34;t_address.address&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;zipCode&#34;&nbsp;column=&#34;t_address.zipcode&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;/resultMap&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;sel&#101;ct&nbsp;id=&#34;getUsers&#34;&nbsp;parameterClass=&#34;java.lang.String&#34;&nbsp;resultMap=&#34;get-user-result&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;![CDATA[sel&#101;ct*&nbsp;from&nbsp;t_user,t_address&nbsp;wh&#101;re&nbsp;t_user.id=t_address.user_id]]&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>保证User&nbsp;类中包含address和zipCode两个String型属性。&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;!—关联查询，无1/N问题--&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;resultMap&nbsp;id=&#34;AccountResultWithRole&#34;&nbsp;class=&#34;Account&#34;&nbsp;groupBy=&#34;id&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;id&#34;&nbsp;column=&#34;ID&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;firstName&#34;&nbsp;column=&#34;FIRST_NAME&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;lastName&#34;&nbsp;column=&#34;LAST_NAME&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;emailAddress&#34;&nbsp;column=&#34;EMAIL&#34;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;role&#34;&nbsp;resultMap=&#34;Account.roleResult&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/resultMap&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;resultMap&nbsp;id=&#34;roleResult&#34;&nbsp;class=&#34;test.Role&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;roleid&#34;&nbsp;column=&#34;ROLEID&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;rolename&#34;&nbsp;column=&#34;ROLENAME&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/resultMap&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;sel&#101;ct&nbsp;id=&#34;sel&#101;ctAccountByIdWithRole&#34;&nbsp;parameterClass=&#34;int&#34;&nbsp;resultMap=&#34;AccountResultWithRole&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&nbsp;B.ROLEID,&nbsp;B.ROLENAME,&nbsp;A.ID,&nbsp;A.FIRST_NAME,A.LAST_NAME,A.EMAIL&nbsp;from&nbsp;ACCOUNT&nbsp;A&nbsp;left&nbsp;outer&nbsp;join&nbsp;ROLE&nbsp;B&nbsp;on&nbsp;A.ROLEID&nbsp;=&nbsp;B.ROLEID&nbsp;wh&#101;re&nbsp;A.ID&nbsp;=&nbsp;#id#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;!--查询--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;sel&#101;ct&nbsp;id=&#34;sel&#101;ctAccountById&#34;&nbsp;parameterClass=&#34;int&#34;&nbsp;resultClass=&#34;Account&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&nbsp;ID&nbsp;as&nbsp;id,FIRST_NAME&nbsp;as&nbsp;firstName,LAST_NAME&nbsp;as&nbsp;lastName,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMAIL&nbsp;as&nbsp;emailAddress&nbsp;from&nbsp;ACCOUNT&nbsp;wh&#101;re&nbsp;ID&nbsp;=&nbsp;#id#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;!--新增--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;ins&#101;rt&nbsp;id=&#34;ins&#101;rtAccount&#34;&nbsp;parameterClass=&#34;Account&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ins&#101;rt&nbsp;into&nbsp;ACCOUNT&nbsp;(FIRST_NAME,LAST_NAME,EMAIL,PID,DT)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;values&nbsp;(#firstName:VARCHAR#,&nbsp;#lastName:VARCHAR#,&nbsp;#emailAddress:VARCHAR#,#pid:INTEGER:0#,#dt:TIME#)&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sel&#101;ctKey&nbsp;resultClass=&#34;int&#34;&nbsp;type=&#34;post&#34;&nbsp;keyProperty=&#34;id&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct&nbsp;@@IDENTITY&nbsp;AS&nbsp;ID&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/sel&#101;ctKey&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/ins&#101;rt&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;!--更新--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;up&#100;ate&nbsp;id=&#34;up&#100;ateAccount&#34;&nbsp;parameterClass=&#34;Account&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;up&#100;ate&nbsp;ACCOUNT&nbsp;set&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIRST_NAME&nbsp;=&nbsp;#firstName:VARCHAR#,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_NAME&nbsp;=&nbsp;#lastName:VARCHAR#,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EMAIL&nbsp;=&nbsp;#emailAddress:VARCHAR#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;wh&#101;re&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;=&nbsp;#id#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/up&#100;ate&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;!--删除--&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;del&#101;te&nbsp;id=&#34;del&#101;teAccountById&#34;&nbsp;parameterClass=&#34;int&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;del&#101;te&nbsp;from&nbsp;ACCOUNT&nbsp;wh&#101;re&nbsp;ID&nbsp;=&nbsp;#id#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/del&#101;te&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;!--存储过程，如果没有返回列表，procTest的resultMap可以省略--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;parameterMap&nbsp;id=&#34;procParamMap&#34;&nbsp;class=&#34;java.util.HashMap&#34;&nbsp;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&nbsp;property=&#34;id&#34;&nbsp;jdbcType=&#34;INTEGER&#34;&nbsp;javaType=&#34;java.lang.Integer&#34;&nbsp;mode=&#34;IN&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&nbsp;property=&#34;outid&#34;&nbsp;jdbcType=&#34;INTEGER&#34;&nbsp;javaType=&#34;java.lang.Integer&#34;&nbsp;mode=&#34;OUT&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;parameter&nbsp;property=&#34;errMsg&#34;&nbsp;jdbcType=&#34;VARCHAR&#34;&nbsp;javaType=&#34;java.lang.String&#34;&nbsp;mode=&#34;OUT&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/parameterMap&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;resultMap&nbsp;id=&#34;procResultMap&#34;&nbsp;class=&#34;java.util.HashMap&#34;&nbsp;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;a&#34;&nbsp;column=&#34;AAA&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;b&#34;&nbsp;column=&#34;BBB&#34;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;result&nbsp;property=&#34;c&#34;&nbsp;column=&#34;CCC&#34;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/resultMap&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;procedure&nbsp;id=&#34;procTest&#34;&nbsp;parameterMap=&#34;procParamMap&#34;&nbsp;resultMap=&#34;procResultMap&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{call&nbsp;test_sp_1&nbsp;(?,?,?)}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/procedure&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;/sqlMap&gt;&nbsp;&nbsp;&nbsp;<br/><br/><br/><br/><br/>java&nbsp;代码&nbsp;<br/><br/><br/>代码<br/>public&nbsp;class&nbsp;TestDao&nbsp;extends&nbsp;SqlMapClientDaoSupport&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&nbsp;sel&#101;ctAllAccounts()&nbsp;throws&nbsp;SQLException&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getSqlMapClientTemplate().queryForList(&#34;sel&#101;ctAllAccounts&#34;);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&nbsp;sel&#101;ctAllAccountsWithMap()&nbsp;throws&nbsp;SQLException&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getSqlMapClientTemplate().queryForList(&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;sel&#101;ctAllAccountsWithMap&#34;);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Account&nbsp;sel&#101;ctAccountById(int&nbsp;id)&nbsp;throws&nbsp;SQLException&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(Account)&nbsp;getSqlMapClientTemplate().queryForObject(&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;sel&#101;ctAccountById&#34;,&nbsp;new&nbsp;Integer(id));&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&nbsp;procTest(Map&nbsp;params)&nbsp;throws&nbsp;Exception&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;ret&nbsp;=&nbsp;(List)&nbsp;getSqlMapClientTemplate().queryForList(&#34;procTest&#34;,params);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ret;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Account&nbsp;sel&#101;ctAccountByIdWithRole(int&nbsp;id)&nbsp;throws&nbsp;SQLException&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(Account)&nbsp;getSqlMapClientTemplate().queryForObject(&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;sel&#101;ctAccountByIdWithRole&#34;,&nbsp;new&nbsp;Integer(id));&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;ins&#101;rtAccount(Account&nbsp;account)&nbsp;throws&nbsp;SQLException&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getSqlMapClientTemplate().ins&#101;rt(&#34;ins&#101;rtAccount&#34;,&nbsp;account);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;up&#100;ateAccount(Account&nbsp;account)&nbsp;throws&nbsp;SQLException&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getSqlMapClientTemplate().up&#100;ate(&#34;up&#100;ateAccount&#34;,&nbsp;account);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;del&#101;teAccount(int&nbsp;id)&nbsp;throws&nbsp;SQLException&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;getSqlMapClientTemplate().del&#101;te(&#34;del&#101;teAccountById&#34;,&nbsp;new&nbsp;Integer(id));&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>}&nbsp;&nbsp;<br/><br/><br/>SqlServer存储过程&nbsp;<br/><br/><br/>代码<br/>Cr&#101;ate&nbsp;procedure&nbsp;test_sp_1&nbsp;@id&nbsp;int,@outid&nbsp;int&nbsp;output,@errMsg&nbsp;varchar(255)&nbsp;output&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>AS&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>up&#100;ate&nbsp;ACCOUNT&nbsp;set&nbsp;pid=@id&nbsp;&nbsp;&nbsp;<br/>sel&#101;ct&nbsp;@outid=isnull(@id,0)+1&nbsp;&nbsp;&nbsp;<br/>sel&#101;ct&nbsp;@errMsg=&#39;测试&#39;&nbsp;&nbsp;&nbsp;&nbsp;<br/>sel&#101;ct&nbsp;AAA=&#39;AAAAAAA&#39;,BBB=&#39;BBBBBBB&#39;,CCC=&#39;CCCCCCC&#39;&nbsp;&nbsp;&nbsp;&nbsp;<br/>GO&nbsp;&nbsp;<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=49" /> 
	  <id>http://www.is21.cn/default.asp?id=49</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[工具Abator 在Eclipse中使用ibatis的自动代码生成]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=7" label="其它框架" /> 
	  <updated>2007-08-28T15:34:05+08:00</updated>
	  <published>2007-08-28T15:34:05+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;关于abator，资源比较少，本文记载了我今日初次使用的过程，希望对和我一样的初学者有所帮助<br/><br/>获得<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://ibatis.apache.org/abator.html" target="_blank">http://ibatis.apache.org/abator.html</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Eclipse可以自动的进行Up&#100;ate获取此Plugin，官方的安装步骤<br/><br/>Automatic&nbsp;Eclipse&nbsp;Install<br/>If&nbsp;you&#39;ve&nbsp;already&nbsp;installed&nbsp;a&nbsp;prior&nbsp;version&nbsp;of&nbsp;Abator,&nbsp;simply&nbsp;run&nbsp;the&nbsp;Eclipse&nbsp;Install/Up&#100;ate&nbsp;tool&nbsp;and&nbsp;the&nbsp;new&nbsp;version&nbsp;will&nbsp;be&nbsp;found&nbsp;automatically.<br/><br/>If&nbsp;you&#39;ve&nbsp;not&nbsp;already&nbsp;installed&nbsp;Abator,&nbsp;then&nbsp;you&nbsp;can&nbsp;use&nbsp;the&nbsp;built&nbsp;in&nbsp;Eclipse&nbsp;install&nbsp;support&nbsp;by&nbsp;following&nbsp;these&nbsp;steps:<br/><br/>Take&nbsp;the&nbsp;&#34;Help&gt;Software&nbsp;Up&#100;ates&gt;Find&nbsp;and&nbsp;Install&#34;&nbsp;Menu&nbsp;Option&nbsp;<br/>Sel&#101;ct&nbsp;the&nbsp;&#34;Search&nbsp;for&nbsp;new&nbsp;features&nbsp;to&nbsp;install&#34;&nbsp;radio&nbsp;button,&nbsp;press&nbsp;&#34;Next&#34;&nbsp;<br/>Press&nbsp;the&nbsp;&#34;New&nbsp;Remote&nbsp;Site&#34;&nbsp;button&nbsp;<br/>Enter&nbsp;the&nbsp;following&nbsp;information:&nbsp;<br/>Name:&nbsp;<br/>Abator&nbsp;for&nbsp;Eclipse&nbsp;Up&#100;ate&nbsp;Site&nbsp;<br/>URL:&nbsp;<br/><a href="http://ibatis.apache.org/tools/abator" target="_blank">http://ibatis.apache.org/tools/abator</a>&nbsp;<br/>Press&nbsp;OK&nbsp;<br/>Check&nbsp;the&nbsp;box&nbsp;next&nbsp;to&nbsp;&#34;Abator&nbsp;for&nbsp;Eclipse&nbsp;Up&#100;ate&nbsp;Site&#34;&nbsp;<br/>Follow&nbsp;the&nbsp;remainder&nbsp;of&nbsp;the&nbsp;install&nbsp;wizard<br/>2、安装好后将在New菜单中看到一个新的文件类型Abator&nbsp;for&nbsp;iBATIS&nbsp;Configuration&nbsp;File，此是Abator的配置文件，配置文件的详细说明见<a href="http://ibatis.apache.org/docs/tools/abator/" target="_blank">http://ibatis.apache.org/docs/tools/abator/</a><br/><br/>3、新建一个配置文件，进行修改，根据自己的实际需求进行修改<br/>关键点：<br/>1）jdbcconnection，按照一般的配置即可，需要说明的是它需要指定访问JdbcDriver的classPathEntry，对于MsSqlServer而言，要将这三个jar文件均包含在内，否则会出现jdbc访问错误。<br/>2）配置三个Pakage<br/>3）配置表，此处需说明的是对于MsSqlServer不能写TableSchema，我初次指定TableSchema，结果未找到对应的表<br/>简单的配置如下，复杂的见配置文件的详细说明。示例配置文件如下<br/>&lt;abatorConfiguration&gt;<br/>&nbsp;&nbsp;&lt;abatorContext&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;TODO:&nbsp;Add&nbsp;Database&nbsp;Connection&nbsp;Information&nbsp;--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;jdbcConnection&nbsp;driverClass=&#34;com.microsoft.jdbc.sqlserver.SQLServerDriver&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connectionURL=&#34;jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=whm;Sel&#101;ctMethod=cursor&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userId=&#34;sa&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password=&#34;sa&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;classPathEntry&nbsp;location=&#34;C:/Program&nbsp;Files/Apache&nbsp;Software&nbsp;Foundation/Tomcat&nbsp;5.0/common/lib/mssqlserver.jar&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;classPathEntry&nbsp;location=&#34;C:/Program&nbsp;Files/Apache&nbsp;Software&nbsp;Foundation/Tomcat&nbsp;5.0/common/lib/msutil.jar&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;classPathEntry&nbsp;location=&#34;C:/Program&nbsp;Files/Apache&nbsp;Software&nbsp;Foundation/Tomcat&nbsp;5.0/common/lib/msbase.jar&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/jdbcConnection&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;javaModelGenerator&nbsp;targetPackage=&#34;com.dwerp.itatis.domain&#34;&nbsp;targetProject=&#34;BhbManage&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sqlMapGenerator&nbsp;targetPackage=&#34;com.dwerp.itatis.persistence.xml&#34;&nbsp;targetProject=&#34;BhbManage&#34;&nbsp;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;daoGenerator&nbsp;type=&#34;IBATIS&#34;&nbsp;targetPackage=&#34;com.dwerp.itatis.persistence.sqlmapdao&#34;&nbsp;targetProject=&#34;BhbManage&#34;&nbsp;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;table&nbsp;tableName=&#34;BHBGL&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br/><br/>&nbsp;&nbsp;&lt;/abatorContext&gt;<br/>&lt;/abatorConfiguration&gt;<br/><br/><br/>4、右键单击配置文件，点击Generate&nbsp;iBatis&nbsp;Artifacts，生成文件。<br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=48" /> 
	  <id>http://www.is21.cn/default.asp?id=48</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[iBatis小实例(能运行)]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=7" label="其它框架" /> 
	  <updated>2007-08-23T11:01:42+08:00</updated>
	  <published>2007-08-23T11:01:42+08:00</published>
		  <summary type="html"><![CDATA[iBatis&nbsp;是一个&nbsp;O/R&nbsp;Mapping&nbsp;解决方案，&nbsp;iBatis&nbsp;最大的特点就是小巧，上手很快。如果你不需要太多复杂的功能，&nbsp;iBatis&nbsp;是能满足你的要求又足够灵活的最简单的解决方案。<br/><br/>下面以例子说明：工具是&nbsp;eclipse3.2+myeclipse5.0&nbsp;，导入即可运行，数据库用的是&nbsp;MySQL&nbsp;。<br/><br/>数据库表：<br/><br/>&nbsp;<br/><br/>cr&#101;ate&nbsp;database&nbsp;if&nbsp;not&nbsp;exists&nbsp;`sample`;&nbsp;<br/><br/>USE&nbsp;`sample`;&nbsp;<br/><br/>/**//*&nbsp;数据表&nbsp;`t_user`&nbsp;的表结构&nbsp;*/&nbsp;&nbsp;<br/><br/>&nbsp;dro&#112;&nbsp;&nbsp;&nbsp;table&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;&nbsp;exists&nbsp;&nbsp;`t_user`;&nbsp;<br/><br/>&nbsp;Cr&#101;ate&nbsp;&nbsp;&nbsp;TABLE&nbsp;&nbsp;`t_user`&nbsp;(&nbsp;<br/><br/>&nbsp;&nbsp;`id`&nbsp;&nbsp;int&nbsp;&nbsp;(&nbsp;11&nbsp;)&nbsp;&nbsp;NOT&nbsp;&nbsp;&nbsp;NULL&nbsp;&nbsp;auto_increment,&nbsp;<br/><br/>&nbsp;&nbsp;`&nbsp;name&nbsp;`&nbsp;&nbsp;varchar&nbsp;&nbsp;(&nbsp;50&nbsp;)&nbsp;&nbsp;default&nbsp;&nbsp;&nbsp;NULL&nbsp;&nbsp;,&nbsp;<br/><br/>&nbsp;&nbsp;`sex`&nbsp;&nbsp;int&nbsp;&nbsp;(&nbsp;11&nbsp;)&nbsp;&nbsp;default&nbsp;&nbsp;&nbsp;NULL&nbsp;&nbsp;,&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;PRIMARY&nbsp;&nbsp;&nbsp;KEY&nbsp;&nbsp;&nbsp;&nbsp;(`id`)&nbsp;<br/><br/>)&nbsp;ENGINE&nbsp;=&nbsp;InnoDB&nbsp;&nbsp;DEFAULT&nbsp;&nbsp;CHARSET&nbsp;=&nbsp;latin1;&nbsp;<br/><br/>&nbsp;/**//**/&nbsp;/**//*&nbsp;&nbsp;数据表&nbsp;`t_user`&nbsp;的数据&nbsp;*/&nbsp;&nbsp;<br/><br/>&nbsp;ins&#101;rt&nbsp;&nbsp;&nbsp;into&nbsp;&nbsp;`t_user`&nbsp;&nbsp;values&nbsp;&nbsp;(&nbsp;1&nbsp;,&nbsp;&nbsp;&#39;&nbsp;Joy_cz&nbsp;&#39;&nbsp;&nbsp;,&nbsp;1&nbsp;),(&nbsp;2&nbsp;,&nbsp;&nbsp;&#39;&nbsp;Joy_cz&nbsp;&#39;&nbsp;&nbsp;,&nbsp;2&nbsp;),(&nbsp;3&nbsp;,&nbsp;&nbsp;&#39;&nbsp;3&nbsp;&#39;&nbsp;&nbsp;,&nbsp;3&nbsp;),(&nbsp;4&nbsp;,&nbsp;&nbsp;&#39;&nbsp;4&nbsp;&#39;&nbsp;&nbsp;,&nbsp;4&nbsp;),(&nbsp;5&nbsp;,&nbsp;&nbsp;&#39;&nbsp;5&nbsp;&#39;&nbsp;&nbsp;,&nbsp;5&nbsp;);&nbsp;<br/><br/><br/>开始写程序：<br/><br/>编写&nbsp;iBatis&nbsp;必须的配置文件&nbsp;SqlMapConfig.xml&nbsp;，放在包&nbsp;com.ctgusec.zhupan.maps&nbsp;下，文件名可以任意改，内容如下：这个配置文件还引用了一个&nbsp;User.xml&nbsp;，&nbsp;iBatis&nbsp;把每个需要&nbsp;O/R&nbsp;Mapping&nbsp;的&nbsp;Java&nbsp;对象关联到一个&nbsp;xml&nbsp;配置文件，我们需要把&nbsp;t_user&nbsp;表映射到一个&nbsp;User&nbsp;类：&nbsp;<br/><br/>&lt;!--sp--&gt;xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;&nbsp;?&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;!--CTYPE&nbsp;sqlMapConfig&nbsp;&nbsp;&nbsp;&nbsp;&lt;/sp--&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;PUBLIC&nbsp;&#34;-//iBATIS.com//DTD&nbsp;SQL&nbsp;Map&nbsp;Config&nbsp;2.0//EN&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://www.ibatis.com/dtd/sql-map-config-2.dtd" target="_blank">http://www.ibatis.com/dtd/sql-map-config-2.dtd</a>&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;sqlMapConfig&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;settings&nbsp;cacheModelsEnabled=&#34;true&#34;&nbsp;enhancementEnabled=&#34;true&#34;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lazyLoadingEnabled=&#34;true&#34;&nbsp;errorTracingEnabled=&#34;true&#34;&nbsp;maxRequests=&#34;32&#34;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxSessions=&#34;10&#34;&nbsp;maxTransactions=&#34;5&#34;&nbsp;useStatementNamespaces=&#34;false&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;transactionManager&nbsp;type=&#34;JDBC&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dataSource&nbsp;type=&#34;SIMPLE&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;JDBC.Driver&#34;&nbsp;value=&#34;com.mysql.jdbc.Driver&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;JDBC.ConnectionURL&#34;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value=&#34;jdbc:mysql://localhost/sample&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;JDBC.Username&#34;&nbsp;value=&#34;root&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;JDBC.Password&#34;&nbsp;value=&#34;&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;Pool.MaximumActiveConnections&#34;&nbsp;value=&#34;10&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;Pool.MaximumIdleConnections&#34;&nbsp;value=&#34;5&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;Pool.MaximumCheckoutTime&#34;&nbsp;value=&#34;120000&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;Pool.TimeToWait&#34;&nbsp;value=&#34;500&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;Pool.PingQuery&#34;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value=&#34;sel&#101;ct&nbsp;1&nbsp;from&nbsp;sample&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;Pool.PingEnabled&#34;&nbsp;value=&#34;false&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;Pool.PingConnectionsOlderThan&#34;&nbsp;value=&#34;1&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;Pool.PingConnectionsNotUsedFor&#34;&nbsp;value=&#34;1&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataSource&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;transactionManager&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sqlMap&nbsp;resource=&#34;com/ctgusec/zhupan/maps/User.xml&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>sqlMapConfig&gt;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;<br/><br/>&nbsp;<br/><br/>package&nbsp;com.ctgusec.zhupan.model;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>import&nbsp;java.io.Serializable;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>public&nbsp;class&nbsp;User&nbsp;implements&nbsp;Serializable&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**&nbsp;*/&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;*//**&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@author&nbsp;Joy_cz&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Integer&nbsp;id;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;name;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Integer&nbsp;sex;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;User()&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Integer&nbsp;getId()&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.id;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setId(Integer&nbsp;id)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;id;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getName()&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.name;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setName(String&nbsp;name)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.name&nbsp;=&nbsp;name;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Integer&nbsp;getSex()&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.sex;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setSex(Integer&nbsp;sex)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.sex&nbsp;=&nbsp;sex;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>}&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>编写&nbsp;User.xml&nbsp;文件：&nbsp;<br/><br/>&nbsp;<br/><br/>&lt;!--sp--&gt;xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;!--CTYPE&nbsp;sqlMap&nbsp;&nbsp;&nbsp;&nbsp;&lt;/sp--&gt;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;PUBLIC&nbsp;&#34;-//iBATIS.com//DTD&nbsp;SQL&nbsp;Map&nbsp;2.0//EN&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://www.ibatis.com/dtd/sql-map-2.dtd" target="_blank">http://www.ibatis.com/dtd/sql-map-2.dtd</a>&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&lt;sqlMap&nbsp;namespace=&#34;User&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;typeAlias&nbsp;alias=&#34;user&#34;&nbsp;type=&#34;com.ctgusec.zhupan.model.User&#34;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sel&#101;ct&nbsp;id=&#34;getUser&#34;&nbsp;parameterClass=&#34;java.lang.String&#34;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultClass=&#34;user&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--DATA[&nbsp;&nbsp;&lt;/sp--&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sex&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;t_user&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;wh&#101;re&nbsp;name&nbsp;=&nbsp;#name#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;]]&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sel&#101;ct&nbsp;id=&#34;getAllUser&#34;&nbsp;resultClass=&#34;user&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--DATA[&nbsp;&nbsp;&lt;/sp--&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sex&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;t_user&nbsp;&nbsp;&nbsp;wh&#101;re&nbsp;name&nbsp;=&nbsp;#name#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;]]&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;up&#100;ate&nbsp;id=&#34;up&#100;ateUser&#34;&nbsp;parameterClass=&#34;user&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--DATA[&nbsp;&nbsp;&lt;/sp--&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Up&#100;ate&nbsp;t_user&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=#name#,&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sex=#sex#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Wh&#101;re&nbsp;id&nbsp;=&nbsp;#id#&nbsp;&nbsp;&nbsp;&nbsp;<br/>]]&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;up&#100;ate&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;ins&#101;rt&nbsp;id=&#34;ins&#101;rtUser&#34;&nbsp;parameterClass=&#34;user&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins&#101;rt&nbsp;INTO&nbsp;t_user&nbsp;(&nbsp;name,&nbsp;sex)&nbsp;VALUES&nbsp;(&nbsp;#name#,&nbsp;#sex#&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ins&#101;rt&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;del&#101;te&nbsp;id=&#34;del&#101;teUser&#34;&nbsp;parameterClass=&#34;java.lang.String&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del&#101;te&nbsp;from&nbsp;t_user&nbsp;wh&#101;re&nbsp;id=#value#&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;del&#101;te&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>sqlMap&gt;&nbsp;&nbsp;&nbsp;<br/><br/>通过ins&#101;rt、del&#101;te、up&#100;ate、sel&#101;ct节点，分别定义了针对&nbsp;TUser&nbsp;对象的增删改查操作。<br/><br/>最后便是如何使用iBatis实现O/R映射,测试给个例子：<br/><br/><br/>package&nbsp;com.ctgusec.zhupan;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>import&nbsp;java.sql.SQLException;&nbsp;&nbsp;&nbsp;&nbsp;<br/>import&nbsp;java.util.List;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>import&nbsp;com.ctgusec.zhupan.model.User;&nbsp;&nbsp;&nbsp;&nbsp;<br/>import&nbsp;com.ibatis.sqlmap.client.SqlMapClientBuilder;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>/**&nbsp;*//**&nbsp;&nbsp;&nbsp;<br/>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;*&nbsp;@author&nbsp;Joy_cz&nbsp;<br/>&nbsp;*/&nbsp;&nbsp;&nbsp;<br/>public&nbsp;class&nbsp;ExampleMain&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;up&#100;ate()&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//首先初始化iBatis获得一个SqlMapClient对象&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;resource&nbsp;=&nbsp;&#34;com/ctgusec/zhupan/maps/SqlMapConfig.xml&#34;;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.ibatis.sqlmap.client.SqlMapClient&nbsp;sqlMap&nbsp;=&nbsp;null;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.io.Reader&nbsp;reader&nbsp;=&nbsp;com.ibatis.common.resources.Resources&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getResourceAsReader(resource);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap&nbsp;=&nbsp;SqlMapClientBuilder.buildSqlMapClient(reader);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;sqlMap系统初始化完毕，开始执行up&#100;ate操作&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.startTransaction();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;user&nbsp;=&nbsp;new&nbsp;User();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setId(new&nbsp;Integer(1));&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setName(&#34;zhupan&#34;);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setSex(new&nbsp;Integer(1));&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.up&#100;ate(&#34;up&#100;ateUser&#34;,&nbsp;user);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.commitTransaction();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(SQLException&nbsp;e)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.getMessage());&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;finally&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.endTransaction();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(SQLException&nbsp;e)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;List&nbsp;getUser()&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先初始化iBatis获得一个SqlMapClient对象&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;resource&nbsp;=&nbsp;&#34;com/ctgusec/zhupan/maps/SqlMapConfig.xml&#34;;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.ibatis.sqlmap.client.SqlMapClient&nbsp;sqlMap&nbsp;=&nbsp;null;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;user=null;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.io.Reader&nbsp;reader&nbsp;=&nbsp;com.ibatis.common.resources.Resources&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getResourceAsReader(resource);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap&nbsp;=&nbsp;SqlMapClientBuilder.buildSqlMapClient(reader);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;sqlMap系统初始化完毕，开始执行getAllUser操作&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.startTransaction();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user=sqlMap.queryForList(&#34;getAllUser&#34;,&nbsp;null);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.commitTransaction();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(SQLException&nbsp;e)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.getMessage());&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;finally&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.endTransaction();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(SQLException&nbsp;e)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;user;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;up&#100;ate();&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;user=getUser();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...{&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(((User)user.get(i)).getName());&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br/>}&nbsp;&nbsp;<br/><br/><img src="http://www.is21.cn/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.is21.cn/attachments/month_0708/z200782311135.rar" target="_blank">点击下载此文件</a><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=36" /> 
	  <id>http://www.is21.cn/default.asp?id=36</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[iBatis小例子]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=7" label="其它框架" /> 
	  <updated>2007-08-17T17:12:42+08:00</updated>
	  <published>2007-08-17T17:12:42+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;相对Hibernate提供了全面的数据库封装机制的“全自动化”ORM实现而言，ibatis要求开发者编写具体的SQL语句。ibatis以SQL开发的工作量和数据库移植性上的让步，为系统设计提供了更大的自由空间。当系统性能要求苛刻、数据处理量大的时候，不失为一种上佳的选择！<br/>&nbsp;&nbsp;&nbsp;这次学习一下ibatis，首先还是来准备必备包：iBATIS_DBL-2.0.0.281-Final.zip、ibatis-common-2.jar、ibatis-dao-2.jar、ibatis-sqlmap-2.jar、commons-logging-1-0-3.jar、log4j-1.2.8.jar。（以上jar包都可以在iBATIS_DBL-2.0.0.281-Final.zip中找到）数据库仍然使用学习Hibernate时使用的Hsqldb。以上必备包可以在ibatis.apache.org和hsqldb.sourceforge.net下载到。<br/><br/><br/>实例：<br/><br/>在Hsqldb中创建ibatisTest数据库，并创建一张T_USER表，编写User.java和User.xml（基于ibatis的O/R映射关系），编写SqlMapConfig.xml配置文件，编写UserAction.java的业务类，实现往T_USER表中插入一条id&nbsp;=&nbsp;1,name&nbsp;=&nbsp;Erica,sex&nbsp;=&nbsp;1的数据。<br/><br/>&nbsp;<br/><br/>数据库：<br/><br/>使用Hsqldb,TYPE选择HSQL&nbsp;DataBase&nbsp;Engine&nbsp;Service，URL填写jdbc.hsqldb:ibatisTest，其余不变，创建好ibatisTest数据库。在执行框中输入以下SQL语句：<br/><br/>Cr&#101;ate&nbsp;TABLE&nbsp;T_USER(<br/>&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;INTEGER&nbsp;NOT&nbsp;NULL&nbsp;PRIMARY&nbsp;KEY,<br/>&nbsp;&nbsp;&nbsp;&nbsp;NAME&nbsp;VARCHAR&nbsp;NOT&nbsp;NULL,<br/>&nbsp;&nbsp;&nbsp;&nbsp;SEX&nbsp;INTEGER&nbsp;NOT&nbsp;NULL)<br/><br/>数据库建立成功！<br/><br/>&nbsp;<br/><br/>O/R映射关系：<br/><br/>分别编写User.java和User.xml两个文件。<br/><br/>1、User.java类<br/><br/>package&nbsp;com.ibatis.sample;<br/><br/>import&nbsp;java.io.Serializable;<br/>import&nbsp;java.util.HashSet;<br/>import&nbsp;java.util.Set;<br/><br/><br/>public&nbsp;class&nbsp;User&nbsp;implements&nbsp;Serializable&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Integer&nbsp;id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Integer&nbsp;sex;<br/>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Set&nbsp;addresses&nbsp;=&nbsp;new&nbsp;HashSet();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;User()&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Integer&nbsp;getId()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setId(Integer&nbsp;id)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getName()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setName(String&nbsp;name)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.name&nbsp;=&nbsp;name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Integer&nbsp;getSex()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.sex;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setSex(Integer&nbsp;sex)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.sex&nbsp;=&nbsp;sex;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;toString()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&#34;[User]&nbsp;&#34;&nbsp;+&nbsp;name&nbsp;+&nbsp;&#34;(&#34;&nbsp;+&nbsp;id&nbsp;+&nbsp;&#34;)&nbsp;sex=&#34;&nbsp;+&nbsp;sex;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>}<br/><br/><br/>2、User.xml文件<br/><br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;sqlMap<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUBLIC&nbsp;&#34;-//iBATIS.com//DTD&nbsp;SQL&nbsp;Map&nbsp;2.0//EN&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://www.ibatis.com/dtd/sql-map-2.dtd" target="_blank">http://www.ibatis.com/dtd/sql-map-2.dtd</a>&#34;&gt;<br/><br/>&lt;sqlMap&nbsp;namespace=&#34;User&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;typeAlias&nbsp;alias=&#34;user&#34;&nbsp;type=&#34;com.ibatis.sample.User&#34;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;ins&#101;rt&nbsp;ｉｄ=&#34;ins&#101;rtUser&#34;&nbsp;parameterClass=&#34;user&#34;&gt;<br/>&lt;![CDATA[<br/>Ins&#101;rt&nbsp;INTO&nbsp;T_USER&nbsp;(<br/>ID,<br/>NAME,<br/>SEX)<br/>VALUES&nbsp;(<br/>#id#,<br/>#name#,<br/>#sex#<br/>)<br/>]]&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ins&#101;rt&gt;<br/><br/>&lt;/sqlMap&gt;<br/><br/>&nbsp;<br/><br/>配置文件SqlMapConfig.xml：<br/><br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;&nbsp;?&gt;<br/>&lt;!DOCTYPE&nbsp;sqlMapConfig<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUBLIC&nbsp;&#34;-//iBATIS.com//DTD&nbsp;SQL&nbsp;Map&nbsp;Config&nbsp;2.0//EN&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://www.ibatis.com/dtd/sql-map-config-2.dtd" target="_blank">http://www.ibatis.com/dtd/sql-map-config-2.dtd</a>&#34;&gt;<br/>&lt;sqlMapConfig&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;settings<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cacheModelsEnabled=&#34;true&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enhancementEnabled=&#34;true&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lazyLoadingEnabled=&#34;true&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;errorTracingEnabled=&#34;true&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxRequests=&#34;32&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxSessions=&#34;10&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxTransactions=&#34;5&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;useStatementNamespaces=&#34;false&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;transactionManager&nbsp;type=&#34;JDBC&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dataSource&nbsp;type=&#34;SIMPLE&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value=&#34;org.hsqldb.jdbcDriver&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value=&#34;jdbc:hsqldb:DB/ibatisTest&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;sa&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;10&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;5&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;120000&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;500&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;sel&#101;ct&nbsp;1&nbsp;from&nbsp;ACCOUNT&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;false&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;1&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;value=&#34;1&#34;/&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dataSource&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/transactionManager&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;sqlMap&nbsp;resource=&#34;com/ibatis/sample/User.xml&#34;/&gt;<br/><br/>&lt;/sqlMapConfig&gt;<br/><br/>我们用这个文件配置数据库连接方式，并以&lt;sqlMap&nbsp;resource=&#34;com/ibatis/sample/User.xml&#34;/&gt;告知ibatis，应该为User.xml建立映射关系等。<br/><br/>&nbsp;<br/><br/>业务类UserAction.java：<br/><br/>package&nbsp;com.ibatis;<br/><br/>import&nbsp;com.ibatis.common.resources.Resources;<br/>import&nbsp;com.ibatis.sqlmap.engine.builder.xml.XmlSqlMapClientBuilder;<br/>import&nbsp;com.ibatis.sqlmap.client.SqlMapClient;<br/>import&nbsp;com.ibatis.sample.User;<br/><br/>import&nbsp;java.io.Reader;<br/><br/>public&nbsp;class&nbsp;UserAction&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;throws&nbsp;Exception&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;resource&nbsp;=&#34;com/ibatis/sample/SqlMapConfig.xml&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reader&nbsp;reader&nbsp;=&nbsp;Resources.getResourceAsReader(resource);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSqlMapClientBuilder&nbsp;xmlBuilder&nbsp;=&nbsp;new&nbsp;XmlSqlMapClientBuilder();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlMapClient&nbsp;sqlMap&nbsp;=&nbsp;xmlBuilder.buildSqlMap(reader);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//sqlMap系统初始化完毕<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;user&nbsp;=&nbsp;new&nbsp;User();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setId(new&nbsp;Integer(1));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setName(&#34;Erica&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setSex(new&nbsp;Integer(1));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(user);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.startTransaction();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.ins&#101;rt(&#34;ins&#101;rtUser&#34;,user);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.commitTransaction();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(user);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finally{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sqlMap.endTransaction();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>}<br/>这也是一个没有SQL语句的业务类，但是并不像Hibernate的“全自动化”机制，所有SQL语句由Hibernate自动生成。在这里，我们将sqlMap.ins&#101;rt(&#34;ins&#101;rtUser&#34;,user);中“ins&#101;rtUser”对应的SQL语句写在了User.xml文件里，并在SqlMapConfig.xml文件里告知ibatis对其进行关系映射。ibatis正是以这种“半自动化”机制来运作的。<br/><br/>&nbsp;<br/><br/>执行：<br/><br/>先将之前创建好的ibatisTest数据库文件ibatisTest.properties、ibatisTest.script（位于Hsqldb的data文件夹里），拷贝到工程目录的DB文件夹下。<br/><br/>一切都正常的话，运行后，我们可以在后台看到如下信息：<br/><br/>[User]&nbsp;Erica(1)&nbsp;sex=1<br/>SimpleDataSource&nbsp;-&nbsp;Cr&#101;ated&nbsp;connection&nbsp;10973446.<br/>Connection&nbsp;-&nbsp;{conn-100000}&nbsp;Connection<br/>PreparedStatement&nbsp;-&nbsp;{pstm-100001}&nbsp;PreparedStatement:&nbsp;&nbsp;&nbsp;Ins&#101;rt&nbsp;INTO&nbsp;T_USER&nbsp;(&nbsp;ID,&nbsp;NAME,&nbsp;SEX)&nbsp;VALUES&nbsp;(&nbsp;?,&nbsp;?,&nbsp;?&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>PreparedStatement&nbsp;-&nbsp;{pstm-100001}&nbsp;Parameters:&nbsp;[1,&nbsp;Erica,&nbsp;1]<br/>PreparedStatement&nbsp;-&nbsp;{pstm-100001}&nbsp;Types:&nbsp;[java.lang.Integer,&nbsp;java.lang.String,&nbsp;java.lang.Integer]<br/>[User]&nbsp;Erica(1)&nbsp;sex=1<br/>SimpleDataSource&nbsp;-&nbsp;Returned&nbsp;connection&nbsp;10973446&nbsp;to&nbsp;pool.<br/><br/>这里ibatis和Hibernate略有不同。同样的数据库工具、同样是做ins&#101;rt操作，当我用Hibernate提交一个id为null的javabean的时候，由于Hibernate的“全自动化”机制，在SQL语句的执行过程中，Hibernate自动生成id号，并成功执行了SQL语句！但是，当我用ibatis提交一个id为null的javabean的时候，SQL语句执行就出错了！<br/><br/>将工程目录下的DB文件夹下的ibatisTest.data、ibatisTest.properties、ibatisTest.script三个文件拷贝到Hsqldb下的data文件夹下，覆盖原来创建的文件。使用原先的配置和数据库名进入，看看数据有没有插入成功！<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=32" /> 
	  <id>http://www.is21.cn/default.asp?id=32</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[iBatis入门实例(未运行)]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=7" label="其它框架" /> 
	  <updated>2007-08-17T16:53:21+08:00</updated>
	  <published>2007-08-17T16:53:21+08:00</published>
		  <summary type="html"><![CDATA[说明：本实例教程来自夏昕的iBatis开发指南，修正了其中的一个bug，添加了系统的支持类库，并最终通过运行。<br/><br/>一、&nbsp;开发环境：<br/><br/>JDK1.5、Eclpse3.1、spring-framework-1.2.4-with-dependencies、MSSQLServer2000<br/><br/>二、&nbsp;系统需要的类库：<br/><br/>jarkata&nbsp;commons中的commons-bdcp.jar、&nbsp;commons-pool.jar、commons-logging.jar；<br/><br/>iBatis中的ibtis-common-2.jar、ibatis-sqlmap-2.jar、ibatis-sqlmap.jar；<br/><br/>spring的spring.jar；<br/><br/>SQLServer驱动程序jtds-1.1.jar。<br/><br/>三、&nbsp;代码：<br/><br/>系统目录：(略)<br/><br/>&nbsp;<br/><br/><br/>代码：<br/><br/>&nbsp;<br/><br/>1、IBatis-Context.xml（系统根目录）<br/><br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/><br/>&lt;!DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;&#34;-//SPRING//DTD&nbsp;BEAN//EN&#34;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://www.springframework.org/dtd/spring-beans.dtd" target="_blank">http://www.springframework.org/dtd/spring-beans.dtd</a>&#34;&gt;<br/><br/>&nbsp;<br/><br/>&lt;beans&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;dataSource&#34;&nbsp;class=&#34;org.apache.commons.dbcp.BasicDataSource&#34;&nbsp;destroy-method=&#34;close&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;driverClassName&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;net.sourceforge.jtds.jdbc.Driver&lt;/value&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;url&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;jdbc:jtds:sqlserver://localhost:1433/vehicle&lt;/value&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;username&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;diss&lt;/value&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;password&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;diss&lt;/value&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;sqlMapClient&#34;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class=&#34;org.springframework.orm.ibatis.SqlMapClientFactoryBean&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;configLocation&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;SqlMapConfig.xml&lt;/value&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;transactionManager&#34;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class=&#34;org.springframework.jdbc.datasource.DataSourceTransactionManager&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;dataSource&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;local=&#34;dataSource&#34;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;userDAO&#34;&nbsp;class=&#34;net.xiaxin.dao.UserDAO&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;dataSource&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;local=&#34;dataSource&#34;&nbsp;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;sqlMapClient&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;local=&#34;sqlMapClient&#34;&nbsp;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id=&#34;userDAOProxy&#34;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class=&#34;org.springframework.transaction.interceptor.TransactionProxyFactoryBean&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;transactionManager&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;bean=&#34;transactionManager&#34;&nbsp;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;target&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;local=&#34;userDAO&#34;&nbsp;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#34;transactionAttributes&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;props&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;ins&#101;rt*&#34;&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop&nbsp;key=&#34;get*&#34;&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&lt;/beans&gt;<br/><br/>&nbsp;<br/><br/>2、sqlMapConfig.xml（系统根目录）<br/><br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/><br/>&lt;!DOCTYPE&nbsp;sqlMapConfig&nbsp;PUBLIC&nbsp;&#34;-//iBATIS.com//DTD&nbsp;SQL&nbsp;Map&nbsp;Config&nbsp;2.0//EN&#34;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://www.ibatis.com/dtd/sql-map-config-2.dtd" target="_blank">http://www.ibatis.com/dtd/sql-map-config-2.dtd</a>&#34;&gt;<br/><br/>&lt;sqlMapConfig&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sqlMap&nbsp;resource=&#34;net/xiaxin/dao/entity/user.xml&#34;/&gt;<br/><br/>&lt;/sqlMapConfig&gt;<br/><br/>&nbsp;<br/><br/>3、user.xml（net.xiaxin.dao.entity目录）<br/><br/>&lt;?xml&nbsp;version=&#34;1.0&#34;&nbsp;encoding=&#34;UTF-8&#34;?&gt;<br/><br/>&lt;!DOCTYPE&nbsp;sqlMap<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUBLIC&nbsp;&#34;-//iBATIS.com//DTD&nbsp;SQL&nbsp;Map&nbsp;2.0//EN&#34;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;<a href="http://www.ibatis.com/dtd/sql-map-2.dtd" target="_blank">http://www.ibatis.com/dtd/sql-map-2.dtd</a>&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&lt;sqlMap&nbsp;namespace=&#34;User&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;typeAlias&nbsp;alias=&#34;user&#34;&nbsp;type=&#34;net.xiaxin.dao.entity.User&#34;&nbsp;/&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ins&#101;rt&nbsp;id=&#34;ins&#101;rtUser&#34;&nbsp;parameterClass=&#34;user&#34;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins&#101;rt&nbsp;INTO&nbsp;users&nbsp;(&nbsp;username,&nbsp;password)&nbsp;VALUES&nbsp;(&nbsp;#username#,<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#password#&nbsp;)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ins&#101;rt&gt;<br/><br/>&lt;/sqlMap&gt;<br/><br/>&nbsp;<br/><br/>4、Test.java（系统根目录）<br/><br/>import&nbsp;java.io.FileNotFoundException;<br/><br/>import&nbsp;net.xiaxin.dao.IUserDAO;<br/><br/>import&nbsp;net.xiaxin.dao.entity.User;<br/><br/>&nbsp;<br/><br/>import&nbsp;o&#114;g.springframework.beans.factory.xml.XmlBeanFactory;<br/><br/>import&nbsp;o&#114;g.springframework.core.io.FileSystemResource;<br/><br/>import&nbsp;o&#114;g.springframework.core.io.Resource;<br/><br/>&nbsp;<br/><br/>public&nbsp;class&nbsp;Test&nbsp;{<br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;args<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;FileNotFoundException&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//InputStream&nbsp;is&nbsp;=&nbsp;new&nbsp;FileInputStream(&#34;Ibatis-Context.xml&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileSystemResource&nbsp;is=new&nbsp;FileSystemResource(&#34;Ibatis-Context.xml&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlBeanFactory&nbsp;factory&nbsp;=&nbsp;new&nbsp;XmlBeanFactory((Resource)&nbsp;is);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IUserDAO&nbsp;userdao&nbsp;=&nbsp;(IUserDAO)factory.getBean(&#34;userDAOProxy&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;user&nbsp;=&nbsp;new&nbsp;User();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setUsername(&#34;Sofia&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user.setPassword(&#34;mypass&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userdao.ins&#101;rtUser(user);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e){e.printStackTrace();}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;<br/><br/>}<br/><br/>&nbsp;<br/><br/>5、User.java（net.xiaxin.dao目录）<br/><br/>package&nbsp;net.xiaxin.dao;<br/><br/>&nbsp;<br/><br/>import&nbsp;net.xiaxin.dao.entity.User;<br/><br/>&nbsp;<br/><br/>public&nbsp;interface&nbsp;IUserDAO&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;ins&#101;rtUser(User&nbsp;user);<br/><br/>}<br/><br/>&nbsp;<br/><br/>6、UserDAO.java（net.xiaxin.dao目录）<br/><br/>package&nbsp;net.xiaxin.dao;<br/><br/>&nbsp;<br/><br/>import&nbsp;net.xiaxin.dao.entity.User;<br/><br/>&nbsp;<br/><br/>import&nbsp;o&#114;g.springframework.orm.ibatis.support.SqlMapClientDaoSupport;<br/><br/>&nbsp;<br/><br/>public&nbsp;class&nbsp;UserDAO&nbsp;extends&nbsp;SqlMapClientDaoSupport&nbsp;implements<br/><br/>IUserDAO&nbsp;{<br/><br/>public&nbsp;void&nbsp;ins&#101;rtUser(User&nbsp;user)&nbsp;{<br/><br/>getSqlMapClientTemplate().up&#100;ate(&#34;ins&#101;rtUser&#34;,&nbsp;user);<br/><br/>}<br/><br/>}<br/><br/>&nbsp;<br/><br/>7、User.java（net.xiaxin.dao.entity目录）<br/><br/>package&nbsp;net.xiaxin.dao.entity;<br/><br/>&nbsp;<br/><br/>public&nbsp;class&nbsp;User&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Integer&nbsp;id;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;username;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;password;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Integer&nbsp;getId()&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;id;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setId(Integer&nbsp;id)&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;id;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getPassword()&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;password;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setPassword(String&nbsp;password)&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.password&nbsp;=&nbsp;password;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getUsername()&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;username;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setUsername(String&nbsp;username)&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.username&nbsp;=&nbsp;username;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/><img src="http://www.is21.cn/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.is21.cn/attachments/month_0708/p2007817165232.rar" target="_blank">点击下载此文件</a><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=31" /> 
	  <id>http://www.is21.cn/default.asp?id=31</id> 
  </entry>	
		
</feed>