如何同时向两张表插入记录

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);
}


展开阅读全文

没有更多推荐了,返回首页