MyBatis中如何获取Oracle序列
更新时间:2024年12月25日 15:05:22 作者:千叶重楼
文章介绍了在使用MyBatis时,如何通过获取序列的下一个值来完成某些功能操作,并在之后进行数据的添加操作,文中特别强调了在获取序列值后不能单独执行插入操作,否则会报错
MyBatis中获取Oracle序列
应用情景
当应用系统中使用了mybatis
并且首先需要获取序列的下一个值来完成某些功能操作
之后再进行数据的添加操作
代码
<select id="findMaxId" parameterType="pd" resultType="java.lang.Integer" useCache="false" flushCache="true" >
select APP_CUSTOM_ID_SEQ.NEXTVAL FROM DUAL
</select><sql id='APP_CUSTOM_ID_SEQ'>APP_CUSTOM_ID_SEQ.currval</sql>
<insert id="save" parameterType="pd">
<selectKey keyProperty="Id" resultType="int" order="BEFORE">
select <include refid="APP_CUSTOM_ID_SEQ" /> from dual
</selectKey>
insert into APP_CUSTOM(
ID,
CREATE_NAME,
CREATE_TIME,
ALTER_TIME,
CREATE_USERNAME,
APP_DES
)values(
#{Id},
#{CREATE_NAME},
#{CREATE_TIME},
#{ALTER_TIME},
#{CREATE_USERNAME},
#{APP_DES}
)
</insert>注:
- 上面数据插入中的APP_CUSTOM_ID_SEQ为获取序列的当前值
- 不能单独执行
- 需要在获取nextval之后执行
- 否则报错
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java的StringBuilder在高性能场景下的正确用法
StringBuilder 对字符串的操作是直接改变字符串对象本身,而不是生成新的对象,所以新能开销小.与StringBuffer相比StringBuilder的性能略高,StringBuilder则没有保证线程的安全,从而性能略高于StringBuffer,需要的朋友可以参考下2023-05-05
关于javax.validation.constraints的超详细说明
这篇文章主要给大家介绍了关于javax.validation.constraints的超详细说明,文中通过代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下2025-07-07


最新评论