MyBatis中如何獲取Oracle序列
更新時間:2024年12月25日 15:05:22 作者:千葉重樓
文章介紹了在使用MyBatis時,如何通過獲取序列的下一個值來完成某些功能操作,并在之后進行數(shù)據(jù)的添加操作,文中特別強調(diào)了在獲取序列值后不能單獨執(zhí)行插入操作,否則會報錯
MyBatis中獲取Oracle序列
應用情景
當應用系統(tǒng)中使用了mybatis
并且首先需要獲取序列的下一個值來完成某些功能操作
之后再進行數(shù)據(jù)的添加操作
代碼
<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>注:
- 上面數(shù)據(jù)插入中的APP_CUSTOM_ID_SEQ為獲取序列的當前值
- 不能單獨執(zhí)行
- 需要在獲取nextval之后執(zhí)行
- 否則報錯
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java的StringBuilder在高性能場景下的正確用法
StringBuilder?對字符串的操作是直接改變字符串對象本身,而不是生成新的對象,所以新能開銷小.與StringBuffer相比StringBuilder的性能略高,StringBuilder則沒有保證線程的安全,從而性能略高于StringBuffer,需要的朋友可以參考下2023-05-05
idea創(chuàng)建maven項目速度慢的三種解決方案
這篇文章主要介紹了idea創(chuàng)建maven項目速度慢的三種解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
SpringMVC Restful api接口實現(xiàn)的代碼
本篇文章主要介紹了SpringMVC Restful api接口實現(xiàn)的代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
關于javax.validation.constraints的超詳細說明
這篇文章主要給大家介紹了關于javax.validation.constraints的超詳細說明,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2025-07-07

