getSqlMapClientTemplate().insert()方法的返回值问题
insert方法的返回值
今天碰到一个问题,就是关于ibatis的insert方法的返回值的问题。在网上找了很多例子,自己也亲自试了一下。
最后得出结论:insert方法返回的是在表中插入记录的主键值对象,如果没有主键,则返回一个null。
xml中的配置如下:
<insert id="insert" parameterClass="uRole">
<selectKey resultClass="int" keyProperty="id">
SELECT SEQ_U_ROLE.NEXTVAL AS ID FROM DUAL
</selectKey>
insert into U_ROLE(ROLE_ID,NAME,TYPE,CREATE_TM,CREATE_PESON
,OTHER1,OTHER2,OTHER3 )
values (#id:INTEGER#,#name:VARCHAR#,#type:VARCHAR#,
sysdate,#createPeson:VARCHAR#,
#oTHER1:VARCHAR#,#oTHER2:VARCHAR#,#oTHER3:VARCHAR# )
</insert>
然后在dao层的调用方法是:
public int insertRole(URole role) {
return (Integer)this.getSqlMapClientTemplate().insert("URole.insert",role);
}
要返回的是用序列作为的主健 经过测试 能返回插入时的主健