本解决方案适用于以webwork+ibatis+spring基础架构的系统中
首先定义要持久化的类
public class WeeklyWork extends WeeklyWorkModel { /** * 上周工作情况 */ public String workLastWeek; /** * 下周工作计划 */ public String workNextWeek; /** * 需要的支撑 */ public String needSupport; public String getNeedSupport() { return needSupport; } public void setNeedSupport(String needSupport) { this.needSupport = needSupport; } public String getWorkLastWeek() { return workLastWeek; } public void setWorkLastWeek(String workLastWeek) { this.workLastWeek = workLastWeek; } public String getWorkNextWeek() { return workNextWeek; } public void setWorkNextWeek(String workNextWeek) { this.workNextWeek = workNextWeek; } }
其中workLastWeek,workNextWeek和needSupport在数据库中与之对应的字段B1,B2,B3均为clob类型,
然后再ibatis的映射文件中定义要持久化类的返回类型的映射
<typeAlias alias="WeeklyWork" type="com.broadtext.extend.jdfgs.weeklywork.domain.WeeklyWork"/> <resultMap class="WeeklyWork" id="WeeklyWorkResult"> <result column="B1" property="workLastWeek" jdbcType="CLOB"/> <result column="B2" property="workNextWeek" jdbcType="CLOB"/> <result column="B3" property="needSupport" jdbcType="CLOB"/> </resultMap>
接下来想只要写好存取的SQL就大功告成了
<insert id="insertWeeklyWork" parameterClass="com.broadtext.extend.jdfgs.weeklywork.domain.WeeklyWork"> insert into $tableName$( B1, B2, B3 )values( <isNotNull property="workLastWeek"> #workLastWeek,javaType=java.lang.String,jdbcType=CLOB#, </isNotNull> <isNull property="workLastWeek">null,</isNull> <isNotNull property="workNextWeek"> #workNextWeek,javaType=java.lang.String,jdbcType=CLOB#, </isNotNull> <isNull property="workNextWeek">null,</isNull> <isNotNull property="needSupport"> #needSupport,javaType=java.lang.String,jdbcType=CLOB# </isNotNull> <isNull property="needSupport">null</isNull> ) </insert> <select id="findWeeklyWorkById" parameterClass="java.util.Map" resultMap="WeeklyWorkResult"> select B1 as B1, B2 as B2, B3 as B3, from $tableName$ </select>
后台的java代码跟正常的ibatis存取对象一样这里不再复述