一、ibatis的sql.xml文件

<sqlMap>

      <!-- 为类起别名-->

    <typeAlias type="com.dto.MarketProductInfoDTO" alias="MarketProductInfoDTO"/>

       <!-- 查询语句-->

      <select id="productExtend.queryMarketProductList" resultClass="MarketProductInfoDTO" parameterClass="MarketProductInfoDTO">

       select m.id_marketproduct_info id,

      m.marketproduct_code    marketProductCode,

      m.marketproduct_name    marketProductName,

      m.version

 from marketproduct_info m

where m.status = '1'

 <isNotEmpty prepend=" and " property="idTechnicProductInfo">

        m.id_technic_product_info = #idTechnicProductInfo#

         </isNotEmpty>

 <isNotEmpty prepend=" and " property="productClass">

        m.product_class = #productClass#

         </isNotEmpty>

         <isNotEmpty prepend=" and " property="marketProductCode">

       <![CDATA[

        (m.marketproduct_code like '%' || #marketProductCode# || '%' or m.marketproduct_name like '%' || 

                                                            #marketProductCode# || '%')

   ]]>

         </isNotEmpty>

          order by m.marketproduct_code

      </select>

          <!-- 查询条件中使用集合 -->

        <select id="productExtend.queryGrantedPartnerAccount" resultClass="java.lang.String"                                                                                                parameterClass="java.util.Map">                                         select distinct partner_account from partner_fee p 

      where p.partner_account in 

       <iterate property="accounts" open="(" close=")" conjunction=",">

                     #accounts[]#

      </iterate>

       </select>

           <!--  如果入参PackageInfoDTO对象插入数据库后,此数据还会被使用,就使用selectKey生成id后,它自动会绑定到入

                 参dto上的    -->

      <insert id="productCombined.savePackageInfo"  parameterClass="com.paic.product.dto.PackageInfoDTO" >

         <selectKey resultClass="java.lang.String" keyProperty="id">

            select rawtohex(sys_guid()) as id from dual

 </selectKey>

        insert into package_info

    (ID_PACKAGE_INFO,

     ID_MARKETPRODUCT_INFO,

     PACKAGE_CODE,

     PACKAGE_NAME,

     CREATED_BY,

     UPDATED_BY,

     status)

  values

    (#id#,

     #idMarketProductInfo#,

     #packageCode#,

     #packageName#,

     #createdBy#,

     #updatedBy#,

     #status#)

     </insert>

        <!--  删除语句  -->

         <delete id="productExtend.deletePartnerFee" parameterClass="java.lang.String">

delete from partner_fee p where p.partner_account = #partnerAccount#

</delete>


     <!-- 调用产品工厂的package生成单证号 的存储过程的参数  -->

    <parameterMap id="proProductDzProcParam" class="java.util.Map">

<parameter property="p_dzno"  jdbcType="VARCHAR"  javaType="java.lang.String" mode="OUT" />

<parameter property="p_vchtype"  jdbcType="VARCHAR"  javaType="java.lang.String" mode="IN" />

<parameter property="p_productclass" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />

<parameter property="p_dptcode"  jdbcType="VARCHAR"  javaType="java.lang.String" mode="IN" />

</parameterMap>

<!--  调用产品工厂的package生成单证号   -->

    <procedure id="proProductDzProc" parameterMap="proProductDzProcParam">

<![CDATA[

{call proddata.product_dz_proc.pd_getdzno(?,?,?,?)}

]]>

</procedure>

</sqlMap>



二、ibatis的 sqlmap-config.xml 文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"

        "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

<!--   参数说明: cacheModelsEnabled: 启用或禁用SqlMapClient的所有缓存model。调试程序时使用。 enhancementEnabled: 

启用或禁用运行时字节码增强,以优化访问Java Bean属性的性能,同时优化延迟加载 的性能。 lazyLoadingEnabled: 启用或禁用SqlMapClient的所有延迟加载。调试程序时使用。 maxRequests: 同时执行SQL语句的最大线程数。大于这个值的线程将阻塞直

到另一个线程执行完成。 不同的DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是 maxTransactions的10倍,并

且总是大于maxSessions和maxTranactions。 减小这个参数值通常能提高性能。 maxSessions: 同一时间内活动的最大session数。一个

session可以是代码请求的显式session, 也可以是当线程使用SqlMapClient实例(即执行一条语句)自动获得的session。 它应该总是大

于或等于maxTransactions并小于maxRequests。减小这个参数值通常能 减少内存使用。 maxTransactions: 同时进入

SqlMapClient.startTransaction()的最大线程数。大于这个值的线程将阻塞 直到另一个线程退出。不同的DBMS有不同的限制值,但任何数

据库都有这些限制。这个参数值应该总是小于或等于maxSessions并总是远远小于maxRequests。减小这个参数值通常能提高性能。

useStatementNamespaces: 如果启用本属性,必须使用全限定名来引用mapped statement。Mapped statement的 全限定名由sql-map的名称

和mapped-statement的名称合成,例如 queryForObject(“sqlMapName.statementName”)     -->

<settings cacheModelsEnabled="true" enhancementEnabled="false"

lazyLoadingEnabled="false" maxRequests="3000" maxSessions="3000"

maxTransactions="3000" useStatementNamespaces="false" />


      <sqlMap resource="sqlmap-mapping-caiualarmreports.xml" />  

    

</sqlMapConfig>