mybatis oracle 新增返回主键

本文介绍了如何在MyBatis框架中通过与Oracle Sequences配合,实现插入操作后自动获取主键值的过程。通过提供Java代码示例和MyBatis配置文件,展示了如何在用户插入操作中自动获取并返回主键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间辜负了谁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值