1. 程式人生 > >如何同時向兩張表插入記錄

如何同時向兩張表插入記錄

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: [email protected]
* @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);
}