Mybatis+oracle 使用oracle自带的SYS_GUID() 并返回主键ID
来源:互联网 发布:vr虚拟现实设计软件 编辑:程序博客网 时间:2024/06/05 11:27
Mybatis+oracle 使用oracle自带的SYS_GUID() 并返回主键ID
由于业务需要表关系为 1:n ,所有设计了两张表。在insert A 后返回 A.ID,并使用A.ID 插入B表中。
之前数据库一直使用的 SYS_GUID() 函数 , 在此 需要注意的是 MAPPER 中 不要用 返回值来接收 ID
void addExceptionMapper(WXAttendanceException exception);
使用是直接get 就ok。
XML代码
<insert id="addExceptionMapper" parameterType="com.ccic.wechat.model.WXAttendanceException" >
<selectKey keyProperty="id" order="BEFORE" resultType="String" >
select SYS_GUID() as id from DUAL
</selectKey>
insert into
t_wx_attendanceException
(userID,userName,exceptionTime,exceptionState,actualTime,reason,reasonPicture,punchState)
values
(#{userID,jdbcType=VARCHAR},#{userName,jdbcType=VARCHAR},#{exceptionTime,jdbcType=VARCHAR},
#{exceptionState,jdbcType=VARCHAR},#{actualTime,jdbcType=VARCHAR},
#{reason,jdbcType=VARCHAR},#{reasonPicture,jdbcType=VARCHAR},#{punchState,jdbcType=VARCHAR})
</insert>
在返回的在B表中的ID 和 A。ID 对应不上。找了半天原因原来 我在新建数据库是 就已经使用了 SYS_GUID() 而 在使用 selectKey 获取 ID的时候 不是同一个。为此付出了 很大的代价。
修改后的 代码
<insert id="addExceptionMapper" parameterType="com.ccic.wechat.model.WXAttendanceException" >
<selectKey keyProperty="id" order="BEFORE" resultType="String" >
select SYS_GUID() as id from DUAL
</selectKey>
insert into
t_wx_attendanceException
(id,userID,userName,exceptionTime,exceptionState,actualTime,reason,reasonPicture,punchState)
values
(#{id,jdbcType=VARCHAR},#{userID,jdbcType=VARCHAR},#{userName,jdbcType=VARCHAR},#{exceptionTime,jdbcType=VARCHAR},
#{exceptionState,jdbcType=VARCHAR},#{actualTime,jdbcType=VARCHAR},
#{reason,jdbcType=VARCHAR},#{reasonPicture,jdbcType=VARCHAR},#{punchState,jdbcType=VARCHAR})
</insert>
<selectKey keyProperty="id" order="BEFORE" resultType="String" >
select SYS_GUID() as id from DUAL
</selectKey>
insert into
t_wx_attendanceException
(id,userID,userName,exceptionTime,exceptionState,actualTime,reason,reasonPicture,punchState)
values
(#{id,jdbcType=VARCHAR},#{userID,jdbcType=VARCHAR},#{userName,jdbcType=VARCHAR},#{exceptionTime,jdbcType=VARCHAR},
#{exceptionState,jdbcType=VARCHAR},#{actualTime,jdbcType=VARCHAR},
#{reason,jdbcType=VARCHAR},#{reasonPicture,jdbcType=VARCHAR},#{punchState,jdbcType=VARCHAR})
</insert>
最后是 贴上 selectKey相关属性
阅读全文
0 0
- Mybatis+oracle 使用oracle自带的SYS_GUID() 并返回主键ID
- mybatis和ibatis插入oracle数据库并返回主键id
- 【oracle唯一主键SYS_GUID()】
- oracle唯一主键SYS_GUID()
- mybatis主键自增返回id值的方法
- mybatis配置oracle的主键自增长
- mybatis oracle 返回插入的主键序列号
- 使用mybatis进行insert操作时返回自增的主键id
- mybatis+oracle主键自增
- mybatis oracle主键自增
- mybatis oracle 新增返回主键
- MyBatis-Oracle-selectKey返回主键
- MyBatis+Oracle带自增主键的批量添加、修改、模糊查询
- mybatis 使用自增主键, 插入记录并返回自增主键 MySQL
- Oracle insert语句执行之后返回插入数据的sys_guid()
- MyBatis在Oracle中插入数据并返回主键的问题解决
- MyBatis在Oracle中插入数据并返回主键的问题解决
- Mybatis返回主键id
- java正则表达式 matches方式匹配ip
- 韩信点兵问题
- Adaboost 算法的原理与推导
- dubbo超时问题
- obj转xml
- Mybatis+oracle 使用oracle自带的SYS_GUID() 并返回主键ID
- F
- DB2 安装错误 Cannot open database file Error applying transforms. Verify that the specified transform pa
- 利用npm 安装删除模块
- 普通类中引用spring 容器管理的bean
- ImageLoader超简单使用并缓存到本地SD卡
- 指针函数与函数指针的区别
- 最小树形图-朱刘算法
- Java 泛型总结(三):通配符的使用