`
皖雪欢飞
  • 浏览: 24586 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

selectKey的用法

 
阅读更多

在使用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-Select提供几种类型 最基础版只提供下拉功能的选择器 带搜索功能的下拉选择器 可多选的下拉选择器 ...这时候先想着去antd文档上找解决方法,无果后百度、SF、google….因为antd每次都会重新渲染&lt;Selec

    layui 点击重置按钮, select 并没有被重置的解决方法

    $("#selectKey").val(""); form.render(); }) 调用一下 form.render();即可 为什么表单不显示? 当你使用表单时,Layui会对select、checkbox、radio等原始元素隐藏,从而进行美化修饰处理。但这需要依赖于form...

    jQuery select小控件适用IE6、IE7、IE8

    属性说明:echange="echange" 选择下拉值的回调方法名称,PS:只要输入方法名称,调用方法中有两个参数key(键) 和 value(值) 例如:function echange(key,value) {alert(key + " " + value);} 动态赋值 ...

    vue-drag-select:基于Vue的仿原生操作系统鼠标拖拽选择

    基于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下拉列表如何设置默认值? 在element-ui的运用中,涉及到了select下拉列表。项目中需要将select的默认值给展示... &lt;el v-for=item key=item.value label=item.label value=item.value&gt; &lt;/el&gt;

    SQLServer2005程序员专用快捷输入AutoHotKey脚本

    用法示例: Ctrl+Alt+n: 打开记事本 Win+t: 输入当前时间戳 ;sf空格: 输入SELECT * FROM ... 文件检验: MD5: b45222260da4c29b30f85796e270c3f8 *AutoInput.zip SHA1: c4ff1d801ae61415c552e8123f7db460716d4bcf *...

    在Vue中使用Select选择器拼接label的操作

    我就废话不多说了,大家还是直接看代码吧~ 货道商品 prop=productid&gt; 请选择 change=changeselect&gt; &lt;el-option v-for=item in myproducts :key=item.Id :label=`${item.Name}/${item.Bra

    用于Ionic应用的单选或多选框ion-select-autocomplete.zip

    使用方法下载或者clone项目,并添加下面的代码[removed][removed]In JS$scope.optionList = [  {  label: 'India',  value: 'IND'  },  {  label: 'United States',  value: 'US'  } ];$...

    经典Sql语句大全(本资源基本涵盖了sql中的经典用法)

    本资源基本涵盖了sql中的经典用法 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE ...

    2009达内SQL学习笔记

    检索返回数据的顺序没有特殊意义,为了明确地排序用 SELECT 语句检索出的数据,可使用 ORDER BY 子句。 ORDER BY 子句取一个或多个列的名字。 对空值,按无穷大处理(升序中,空值排最后;降序中排最前)。 1、...

    Redis 用法

    Redis 用法 简单说明ppt 初学者试用。 string: =============================================================================== SET name "John Doe" GET name 批量的读写操作 MSET age 30 sex "male" MGET ...

    数据库sql用法

    数据库sql用法 1、说明:创建数据库 CREATEDATABASEdatabase-name  2、说明:删除数据库 dropdatabase dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', ...

    thinkPHP中volist标签用法示例

    本文实例讲述了thinkPHP中volist标签用法。分享给大家供大家参考,具体如下: ...通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。 $User = M('User'); $list = $User-&gt;select(); $

    MYSQL GROUP BY用法详解

    现在需要把这些重复的数据删除掉,使用到的语句就是Group By来完成。为了进一步了解这条语句的作用,我打算先从简单入手。 建一个测试表 代码如下:create table test_group(id int auto_increment primary key, ...

    经典全面的SQL语句大全

     9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)  10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select *...

    mysql数据库的基本操作语法

    如果需要改变列名建议使用change,如果需要改变数据类型和显示位置可以使用modify 13、 删除表 drop table users; drop删除表会删除表结构,表对象将不存在数据中;数据也不会存在;表内的对象也不存在,如:索引、...

    经典SQL语句大全

    9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * ...

    sql经典语句一部分

    9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * ...

    数据库操作语句大全(sql)

    9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * ...

Global site tag (gtag.js) - Google Analytics