日期:2014-05-16  浏览次数:20514 次

IBastis配置实例
<?xml version="1.0" encoding="utf-8" ?>

<sqlMap namespace="Product" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <alias>
    <!--商品别名-->
    <typeAlias alias="Product" type="OMS.DTL.Entities.Product,OMS.DTL" />

    <!--商品部分属性别名-->
    <typeAlias alias="ProductPartial" type="OMS.DTL.Entities.ProductPartial,OMS.DTL"/>

    <!--商品查询条件别名-->
    <typeAlias alias="ProductQueryCondition" type="OMS.DTL.Entities.ProductQueryCondition,OMS.DTL"/>
  </alias>

  <!--结果映射-->
  <resultMaps>
    <resultMap id="ProductPartial" class="ProductPartial">
      <result property="ProductID" column="ProductID"/>
      <result property="ProductName" column="ProductName"/>
      <result property="QuantityPerUnit" column="QuantityPerUnit"/>
      <result property="UnitPrice" column="UnitPrice" />
      <result property="UnitsInStock" column="UnitsInStock"/>
    </resultMap>
  </resultMaps>

  <statements>
    <!--查询所有商品-->
    <select id="SelectAllProduct" resultClass="Product">
      SELECT [ProductID]
      ,[ProductName]
      ,[SupplierID]
      ,[CategoryID]
      ,[QuantityPerUnit]
      ,[UnitPrice]
      ,[UnitsInStock]
      ,[UnitsOnOrder]
      ,[ReorderLevel]
      ,[Discontinued]
      FROM [Products]
    </select>

    <!--根据商品ID查询商品-->
    <select id="SelectProductByProductID" parameterClass="int" resultClass="Product" extends="SelectAllProduct">
      WHERE ProductID=#PorductID#
    </select>

    <!--获取所有产品的部分信息-->
    <select id="SelectAllProductPartial" resultMap="ProductPartial">
      SELECT [ProductID]
      ,[ProductName]
      ,[SupplierID]
      ,[CategoryID]
      ,[QuantityPerUnit]
      ,[UnitPrice]
      ,[UnitsInStock]
      ,[UnitsOnOrder]
      ,[ReorderLevel]
      ,[Discontinued]
      FROM [Products]
    </select>
    
    <!--通过两个条件或的关系查找-->
    <!--通过字典传值-->
    <select id="SelectProductByIDOrName" parameterClass="System.Collections.IDictionary" resultClass="Product" extends="SelectAllProduct">
      WHERE ProductID=#ProductID# OR ProductName=#ProductName#      
    </select>
    <!--通过类传值-->
    <select id="SelectProductBySupplierIDOrCategoryID" parameterClass="ProductQueryCondition" resultClass="Product" extends="SelectAllProduct">
      WHERE SupplierID=#SupplierID# OR CategoryID=#CategoryID#
    </select>
    
    <!--插入操作-->
    <insert id="Insert" parameterClass="Product">
      INSERT INTO [Products]
      ([ProductName]
      ,[SupplierID]
      ,[CategoryID]
      ,[QuantityPerUnit]
      ,[UnitPrice]
      ,[UnitsInStock]
      ,[UnitsOnOrder]
      ,[ReorderLevel]
      ,[Discontinued])
      VALUES
      (#ProductName#
      ,#SupplierID#
      ,#CategoryID#
      ,#QuantityPerUnit#
      ,#UnitPrice#
      ,#UnitsInStock#
      ,#UnitsOnOrder#
      ,#ReorderLevel#
      ,#Discontinued#)
      <!--获取自增列ID-->
      <selectKey resultClass="int" type="post" property="ProductID" >
        select @@IDENTITY as value
      </selectKey>
    </insert>

    <!--更新操作-->
    <update id="Update" parameterClass="System.Collections.IDictionary">
      update Products
      set ProductName = #ProductName#
      where ProductID = #ProductID#
    </update>
    
    <!--删除操作-->
    <delete i