mybatis中返回oracled的Sequences主键
注:版本:mybatis-3.2.3.jar
1、java代码中调用插入方法,插入用户,并返回值
public long addUser(User user) {
SqlSession session = sf.openSession();
long result;
try {
UserDao dao = (UserDao) session.getMapper(UserDao.class);
dao.insertUser(user);
//获得新增用户的主键
result = user.getUserId();
} finally {
session.commit();
session.close();
}
return result;
}
2、mybatis配置UserMapper.xml
<!-- 用户插入 -->
<insert id="insertUser" parameterType="User">
<![CDATA[
INSERT INTO TB_USER
(
]]>
<if test="userCode!=null"> USERCODE,</if>
<if test="userName!=null">USERNAME,</if>
<if test="realName!=null"> REALNAME,</if>
<if test="passWord!=null">PASSWORD,</if>
<if test="telphone!=null"> TELPHONE,</if>
<if test="sex!=null">SEX,</if>
<if test="email!=null"> EMAIL,</if>
<if test="head!=null">HEAD,</if>
<if test="birthday!=null">BIRTHDAY,</if>
<if test="enable!=null">ENABLE,</if>
<![CDATA[
USERID)VALUES (
]]>
<if test="userCode!=null"> #{userCode},</if>
<if test="userName!=null"> #{userName},</if>
<if test="realName!=null"> #{realName},</if>
<if test="passWord!=null"> #{passWord},</if>
<if test="telphone!=null"> #{telphone},</if>
<if test="sex!=null"> #{sex},</if>
<if test="email!=null"> #{email},</if>
<if test="head!=null"> #{head},</if>
<if test="birthday!=null"> #{birthday},</if>
<if test="enable!=null"> #{enable},</if>
<![CDATA[
SEQ_USER.NEXTVAL)
]]>
<!-- 获取当前主键 -->
<selectKey resultType="java.lang.Long" keyProperty="userId" >
SELECT SEQ_USER.CURRVAL AS USERID FROM DUAL
</selectKey>
</insert>