sql语句中很难写或者没有同时插入两张表的sql语句,解决办法是在xml里写两个insert sql语句,执行两个插入方法:
<insert id="com.app.multimedia.domain.TB0005_SNIMDT.insert"
parameterClass="TB0005_SNIMDT">
<![CDATA[
insert into TB0005_SNIMDT(snpccd,fltp,flspun,flclpr,flcltm,flsc,brfl,rm,flnm)
values(#snpccd#,#fltp#,#flspun#,#flclpr#,#flcltm#,#flsc#,#brfl#,#rm#,#flnm#)
]]>
</insert>
<insert id="com.app.multimedia.domain.TB0005_SNIMDT.insert0007"
parameterClass="TB0005_SNIMDT">
<![CDATA[
insert into tb0007_enspin(snpccd,ennmcd)
values(#snpccd#,#ennmcd#)
]]>
</insert>
两个插入方法:
public void insert(TB0005_SNIMDT obj) {
/**
* 增加到TB0001_PRNMSR
*/
tb0005_snimdtEntityDao.insert(obj);
tb0005_snimdtEntityDao.insert0007(obj);
}
第一个insert是父类IBatisGenericDao里面的insert方法;
/**
*
* 此方法描述的是:新增对象
*
* @Title: insert
* @author: philwilla@sina.com
* @param o
* @return
* @return Long 返回类型
* @version: 2013-5-10 上午10:09:35
*/
public Long insert(Object o) {
return (Long) getSqlMapClientTemplate().insert(
o.getClass().getName() + POSTFIX_INSERT, o);
}
第二个是根据上一个insert自己实现的方法:
public Long insert0007(TB0005_SNIMDT o){
return (Long)getSqlMapClientTemplate().insert(o.getClass().getName() + ".insert0007", o);
//super.insert(o);
}