ms sql server 在abator生成的 insert 无法获取插入 id 的原因
<insert id="abatorgenerated_insert" parameterClass="net.xxxxxl.dataobject.Users">
<!--
WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
This element was generated on Fri Aug 21 21:21:33 CST 2015.
-->
insert into Users (user_Pwd, user_Nickname, user_Firstname, user_Lastname, user_Sex,
user_Birthday, FK_City, ....
user_LoginState, user_Collecter, user_Collected, user_lang, user_login_fail_times, user_Money,
weixin_openid)
values (#user_Pwd:VARCHAR#, #user_Nickname:VARCHAR#, #user_Firstname:VARCHAR#,
#user_Lastname:VARCHAR#, #user_Sex:CHAR#, #user_Birthday:VARCHAR#, #FK_City:BIGINT#,
.....
#user_login_fail_times:INTEGER#, #user_Money:DOUBLE#, #weixin_openid:VARCHAR#)
<selectKey keyProperty="userId" resultClass="java.lang.Long">
SELECT SCOPE_IDENTITY()
</selectKey>
</insert>
上面是 abator 生成的对应于ms sql server 的insert 代码,实际运行时,无法获取 插入记录对应的 id 值,虽然里面包含了:
<selectKey keyProperty="userId" resultClass="java.lang.Long">
SELECT SCOPE_IDENTITY()
</selectKey>
正确的方法是,让 <selectKey> 子句包含住整个 insert 语句,如下所示:
<insert id="abatorgenerated_insert" parameterClass="net.xxxxxx.dal.dataobject.Users">
<!--
WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
This element was generated on Fri Aug 21 21:21:33 CST 2015.
-->
<selectKey keyProperty="userId" resultClass="java.lang.Long">
insert into Users (user_Pwd, user_Nickname, user_Firstname, user_Lastname, user_Sex,
user_Birthday, .....
weixin_openid)
values (#user_Pwd:VARCHAR#, #user_Nickname:VARCHAR#, #user_Firstname:VARCHAR#,
......
#user_login_fail_times:INTEGER#, #user_Money:DOUBLE#, #weixin_openid:VARCHAR#) SELECT SCOPE_IDENTITY()
</selectKey>
</insert>
这样才能正确的获取 insert 语句执行时对应的 id 主键值。
ms sql server 在abator生成的 insert 无法获取插入 id 的原因的更多相关文章
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】
iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post). Oracle设置 <!-- Oracle SE ...
- (火炬)MS SQL Server数据库案例教程
(火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...
- SQL Server镜像自动生成脚本
SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...
- Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...
- MS SQL SERVER 中的系统表
MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行. 2 syscomments 包含每 ...
- Display Database Image using MS SQL Server 2008 Reporting Services
原文 Display Database Image using MS SQL Server 2008 Reporting Services With the new release of MS SQL ...
- Oracle\MS SQL Server Update多表关联更新
原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...
- 使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)
在实际开发中,可能很少人会手写sql脚本来操作数据库的种种.特别是微软的MS SQL Server数据库,它的SQL Server Management Studio对数据库的图形化操作极致简便,从而 ...
- MS SQL Server的COALESCE函数
MS SQL Server的COALESCE函数是从一系列表达式中返回第一个NOT NULL的值. 检查[B],[Q],[S],[T],[U]的值: 检查顺序[B]->[Q]->[S]-& ...
随机推荐
- 【推荐】iOS带有加载网络图片进度的UIImageView
UCZProgressView 是一个带有通用的圆形图片进度下载控件.动画效果不错 特性 Customizable indicator (line width, radius, and color) ...
- 用C#开发的双色球走势图(一)
首先声明,个人纯粹无聊之作,不作商业用途. 我相信每个人都拥有一个梦想那就是有朝一日能中500W,这个也一直是我的梦想,并默默每一期双色球或多或少要贡献自己一点点力量,本人并不属于那种铁杆的彩票迷,每 ...
- windbg sos加载相关
使用windbg 加载sos.dll时,经常碰到报The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.d ...
- (转) 关于在IE6下 无法跳转问题
之前在项目,用到超链接,在ie下没有问题,但是到了ie6,居然发现点击事件不起作用, 真不可思议,以前都没注意到,后来网上搜了下,问题就出在这个void(0)上!现把网上的资料整理了下. <a ...
- 与众不同 windows phone (50) - 8.1 新增控件: PickerFlyout, ListPickerFlyout
[源码下载] 与众不同 windows phone (50) - 8.1 新增控件: PickerFlyout, ListPickerFlyout 作者:webabcd 介绍与众不同 windows ...
- SpreadJS 中应用 KnockoutJS 技术
SpreadJS 支持 Knockout (KO)技术, KnockoutJS 是一个使用 MVVM 模式的 JavaScript 库,允许双向数据绑定,使数据和UI界面进行实时的交互更新.关于KO的 ...
- Win7配置Go环境
最近想学习下Go语言,先从最基本的Hello Go开始,搭建Go开发环境 一.下载Go包 由于Go官网国内访问经常有问题,可以从国内的镜像下载: http://www.golangtc.com/ 二. ...
- ati显卡驱动后,性能不咋地
ubuntu装了ati的闭源驱动后,拖动窗口,会有明显的断裂感,不够平滑
- 开启Windows Server 2008 R2上帝模式
TAG标签: 摘要:这个“God Mode” 应该大部分的网友都听过了,只是在 Windows Server 2008 R2 上也支持此一功能.启用方式非常简单,在桌面新建一个文件夹,命名为: God ...
- [C#]多线程下载
发现电脑里以前编写的下载程序... 做个记录,那时做的挺匆忙的,没用委托,通过公开出窗体来修改下载进度,做的比较乱... ==!! 程序具体功能(流程): 1.检测系统托盘图标内的进程名是否符合要求 ...