摘要:iBATIS的net版本现在是iBATIS.Net-V0.9iBATIS.Net-V0.9betahttp://sourceforge.net/projects/ibatisnet
iBATIS和其他的ORMapping的工具相比有点奇怪,可以说是一个sqlmap,所以在Why use iBATIS SQL Maps? 中有一条理由是You already know SQL, why waste time learning something else?
iBATIS的cache模式可以灵活的配置<cacheModel name="account-cache" implementation="LRU" > <flushInterval hours="24"/> <flushOnExecute statement="UpdateAccountViaInlineParameters"/> <flushOnExecute statement="UpdateAccountViaParameterMap"/> <property name="CacheSize" value="50"/></cacheModel>
(UpdateAccountViaInlineParameters和UpdateAccountViaParameterMap表示两个对数据库的访问动作)
sql语句有三种基本形式存储过程<procedure name="InsertAccountViaStoreProcedure" parameterMap="insert-params"> sp_InsertAccount</procedure>
命名的参数<insert name="InsertAccountViaInlineParameters" parameterClass="Account" > insert into Accounts (Account_ID, Account_FirstName, Account_LastName, Account_Email) values (#Id#, #FirstName#, #LastName#, #EmailAddress:VarChar:no_email@provided.com# )</insert>
未命名的参数<statement name="InsertOrderViaParameterMap" parameterMap="insert-params" > insert into Orders (Order_ID, Account_ID, Order_Date, Order_CardExpiry, Order_CardType, Order_CardNumber, Order_Street, Order_City, Order_Province, Order_PostalCode ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)/statement>
参数的映射关系通过parameterMap来定义<parameterMap name="insert-params"> <parameter property="Id" /> <parameter property="FirstName" /> <parameter property="LastName" /> <parameter property="EmailAddress" nullValue="no_email@provided.com"/></parameterMap>
返回的结果通过<resultMap来定义<resultMap name="order-joined-favourite" class="Order"> <result property="Id" column="Order_ID"/> <result property="Date" column="Order_Date"/> <result property="CardExpiry" column="Order_CardExpiry"/> <result property="CardType" column="Order_CardType"/> <result property="CardNumber" column="Order_CardNumber"/> <result property="Street" column="Order_Street"/> <result property="City" column="Order_City"/> <result property="Province" column="Order_Province"/> <result property="PostalCode" column="Order_PostalCode"/> <result property="FavouriteLineItem" resultMapping="LineItem.LineItem" /></resultMap>
不过现在还不清楚返回"Hashtable"是指什么<resultMap name="lite-order-map-result" class="Hashtable"> <result property="Id" column="Order_ID"/> <result property="Date" column="Order_Date"/> <result property="CardExpiry" column="Order_CardExpiry"/> <result property="CardType" column="Order_CardType"/> <result property="CardNumber" column="Order_CardNumber"/> <result property="Street" ......[
阅读全文]