IBatis添加信息返当前添加对象ID
<insert id="MS-SYS-SEQ-INSERT">
<insert id="addStudent" parameterClass="Student">
<selectKey resultClass="int" keyProperty="id">
select seq_student.nextval as value from dual
<!-- 这里需要说明一下不同的数据库主键的生成,对各自的数据库有不同的方式: -->
<!-- mysql:SELECT LAST_INSERT_ID() AS VALUE -->
<!-- mssql:select @@IDENTITY as value -->
<!-- oracle:SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL -->
<!-- 还有一点需要注意的是不同的数据库生产商生成主键的方式不一样,有些是预先生成 (pre-generate)主键的,如Oracle和PostgreSQL。
有些是事后生成(post-generate)主键的,如MySQL和SQL Server 所以如果是Oracle数据库,则需要将selectKey写在insert之前 -->
</selectKey>
insert into tbl_student(id,name,birth,score) values (#id#,#name#,#birth#,#score#)
</insert>
selectKey元素部分其实既可以放在insert语句之前也是可以放在其后的,放在之前的话就用nextval,放在之后的话就用currval。如果放在之前用currval就会报错提示要先进行nextval操作再currval。
<insert id="addStudent" parameterClass="Student">
insert into tbl_student(id,name,birth,score) values (#id#,#name#,#birth#,#score#)
<selectKey resultClass="int" keyProperty="id">
select seq_student.currval as value from dual
</selectKey>
</insert>
转自 http://bujingyun23.blog.163.com/blog/static/18131024320137240417135/
最新文章
- Oracle、SQL Server、MySQL数据类型对比
- Python基础:函数式编程
- Android扫描文件
- Large Object Heap内存碎片在.NET 4.5中的改进
- Android开发之事件分发和Listener
- hdu 4542 小明系列故事——未知剩余系
- Can&#39;t connect to local MySQL server through socket
- Caused by: java.lang.ClassNotFoundException: javassist.ClassPool
- MongoDB监控一 mongostat
- C# 数组与集合的区别
- shell中输出日期的一个函数
- js定义类
- linux之nagios安装教程
- TextBox限制输入字母、数字、退格键
- [Unity基础]RenderTexture
- 10. js时间格式转换
- Linux命令行获取本机外网IP地址
- vCenter Server Virtual Appliance features and benefits
- 【Linux】crontab 定时启动sh
- apt-get 命令加 autoclean clean autoremove 区别