在使用ibatis插入数据进入数据库的时候会用到sequence序列来生成自增的id
这时可以使用selectKey就可以得到sequence的值,同时也会将值返回。不过对于不同的数据库有不同的操作方式。
oracle:
<insert id="insertTeacher" parameterClass="map">
<selectKey resultClass="long" keyProperty="id">
select SEQ_TEACHER.nextval as id from dual
</selectKey>
insert into user
(id,name,class)
values
(#id#,#name#,#class#)
</insert>
注意:这时selectKey必须要写在语句的最前端即先得到自增的id在进行数据的插入操作
该句话执行完之后,传进来的参数Teacher对象里的id字段就会被赋值成sequence的值
mysql:
<insert id="insertUser" parameterClass="ibatis.User">
<selectKey resultClass="long" keyProperty="id">
SELECT LAST_INSERT_ID() AS ID
</selectKey>
insert into user
(name,password)
values
(#name#,#password#)
</insert>
将selectKey放在insert之后,通过LAST_INSERT_ID() 获得刚插入的自动增长的id的值
或者采用: <insert id="insertUser" parameterClass="ibatis.User">
insert into user
(name,password)
values
(#name#,#password#)
<selectKey resultClass="long" keyProperty="id">
SELECT @@IDENTITY AS id
</selectKey>
</insert>
这时也能返回新增那一条数据的id,这时的selectkey没有要求写在前面是因为id字段数据库中的设置为自增的状态可以直接返回id另外以@@定义的变量都是系统的全局变量
相关推荐
一、Antd-Select提供几种类型 最基础版只提供下拉功能的选择器 带搜索功能的下拉选择器 可多选的下拉选择器 ...这时候先想着去antd文档上找解决方法,无果后百度、SF、google….因为antd每次都会重新渲染<Selec
$("#selectKey").val(""); form.render(); }) 调用一下 form.render();即可 为什么表单不显示? 当你使用表单时,Layui会对select、checkbox、radio等原始元素隐藏,从而进行美化修饰处理。但这需要依赖于form...
属性说明:echange="echange" 选择下拉值的回调方法名称,PS:只要输入方法名称,调用方法中有两个参数key(键) 和 value(值) 例如:function echange(key,value) {alert(key + " " + value);} 动态赋值 ...
基于Vue的鼠标拖拽选择组件演示版入门安装npm install vue-drag-select-pro --saveyarn add vue-drag-select-pro文档进口import Vue from 'vue... vue-drag-select v-model = "selectedList" value-key = "name" : item
element-ui中的select下拉列表如何设置默认值? 在element-ui的运用中,涉及到了select下拉列表。项目中需要将select的默认值给展示... <el v-for=item key=item.value label=item.label value=item.value> </el>
用法示例: Ctrl+Alt+n: 打开记事本 Win+t: 输入当前时间戳 ;sf空格: 输入SELECT * FROM ... 文件检验: MD5: b45222260da4c29b30f85796e270c3f8 *AutoInput.zip SHA1: c4ff1d801ae61415c552e8123f7db460716d4bcf *...
我就废话不多说了,大家还是直接看代码吧~ 货道商品 prop=productid> 请选择 change=changeselect> <el-option v-for=item in myproducts :key=item.Id :label=`${item.Name}/${item.Bra
使用方法下载或者clone项目,并添加下面的代码[removed][removed]In JS$scope.optionList = [ { label: 'India', value: 'IND' }, { label: 'United States', value: 'US' } ];$...
本资源基本涵盖了sql中的经典用法 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE ...
检索返回数据的顺序没有特殊意义,为了明确地排序用 SELECT 语句检索出的数据,可使用 ORDER BY 子句。 ORDER BY 子句取一个或多个列的名字。 对空值,按无穷大处理(升序中,空值排最后;降序中排最前)。 1、...
Redis 用法 简单说明ppt 初学者试用。 string: =============================================================================== SET name "John Doe" GET name 批量的读写操作 MSET age 30 sex "male" MGET ...
数据库sql用法 1、说明:创建数据库 CREATEDATABASEdatabase-name 2、说明:删除数据库 dropdatabase dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', ...
本文实例讲述了thinkPHP中volist标签用法。分享给大家供大家参考,具体如下: ...通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。 $User = M('User'); $list = $User->select(); $
现在需要把这些重复的数据删除掉,使用到的语句就是Group By来完成。为了进一步了解这条语句的作用,我打算先从简单入手。 建一个测试表 代码如下:create table test_group(id int auto_increment primary key, ...
9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select *...
如果需要改变列名建议使用change,如果需要改变数据类型和显示位置可以使用modify 13、 删除表 drop table users; drop删除表会删除表结构,表对象将不存在数据中;数据也不会存在;表内的对象也不存在,如:索引、...
9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * ...
9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * ...
9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * ...