论坛首页 Java企业应用论坛

改造iBatis,使其支持自动生成sql语句(3)

浏览 5063 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2007-12-07  

 

  更新了一下,更新日志:

  1. 使generate其支持statment和sql断。
  2. insert段支持exclude。
  3. delete语句可以不需要parameterMap。
  4. generate段支持for属性,可以指定生成哪种类型的sql。

  更新的是重要目的是只需要一个parametermap。

xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <!---->
  3.     "http://ibatis.apache.org/dtd/sql-map-2.dtd">  
  4.   
  5. <sqlMap namespace="sort">  
  6.   <typeAlias alias="Sort" type="com.cpcw.product.domain.Sort"/>  
  7.   
  8.   <parameterMap id="SortParameterMap" class="Sort">  
  9.     <parameter property="name" column="name" jdbcType="VC"/>  
  10.     <parameter property="fid" column="fid" jdbcType="INTEGER"/>  
  11.     <parameter property="status" column="status" jdbcType="INTEGER"/>  
  12.     <parameter property="notes" column="notes" jdbcType="VC"/>  
  13.     <parameter property="created" column="created" jdbcType="TIMESTAMP"/>  
  14.       <parameter property="id" column="id" jdbcType="INTEGER"/>  
  15.   parameterMap>  
  16.     
  17.   
  18.   <parameterMap id="SortParameterDeleteMap" class="Sort">  
  19.     <parameter property="id" column="id"/>  
  20.   parameterMap>  
  21.   
  22.   <select id="selectSort" parameterMap="sort.SortParameterMap" resultClass="Sort">  
  23.     select * from (   
  24.     <generate table="sort" where="id"/>  
  25.     ) a order by id desc limit 1   
  26.   select>  
  27.   
  28.   <insert id="createSort" parameterMap="sort.SortParameterMap">  
  29.     <selectKey keyProperty="id" resultClass="int" type="post">  
  30.       select last_insert_id() as value   
  31.     selectKey>  
  32.     <generate table="sort" excludes="id"/>  
  33.   insert>  
  34.      
  35.   <update id="updateSort" parameterMap="sort.SortParameterMap">  
  36.     <generate where="id" table="sort" excludes="{status,created}"/>  
  37.   update>  
  38.      
  39.   <sql id="include">    <generate table="sort" for="delete" where="id"/>  sql>  
  40.   
  41.   <delete id="deleteSort">  
  42.     <include refid="sort.include"/>  
  43.   delete>  
  44.   
  45.      
  46.   <delete id="deleteSortStatus" >  
  47.     <include refid="sort.include"/> and status = 1    
  48.   delete>  
  49.   
  50.   
  51. sqlMap>  
   发表时间:2007-12-07  
正在学习使用ibatis,下载来试试看。多谢
0 请登录后投票
   发表时间:2007-12-20  
不错,支持一个,关键是效率上要保证!不要因为封装导致效率下降!
0 请登录后投票
   发表时间:2007-12-20  

[quote="bukebushuo"]不错,支持一个,关键是效率上要保证!不要因为封装导致效率下降![/quote]

这种封装只是在ibatis初始化的时候有点儿小影响(把<generate>变成ibatis sql),这种影响可以忽略不计。

对于运行没有任何影响(当然是指使用hack前和hack后的代码)。

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics