如何同時向兩張表插入記錄
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);
}