zoukankan      html  css  js  c++  java
  • mybatis insert、update 、delete默认返回值解释与如何设置返回表主键

    在使用mybatis做持久层时,insert、update、delete,sql语句默认是不返回被操作记录主键的,而是返回被操作记录条数;

    那么如果想要得到被操作记录的主键,可以通过下面的配置方式获取。

    针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:

    <insert id="save" parameterType="user">

    <selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id">

    SELECT SEQ_TEST.NEXTVAL FROM DUAL

    </selectKey>

    insert into user(name, age,password) values (#{name},#{age},#{password})

    </insert>

    针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式:

    <insert id="save" parameterType="user" useGeneratedKeys="true" keyProperty="id">

    insert into user(name, age,password) values (#{name},#{age},#{password})

    </insert>

     或

    <insert id="save" parameterType="user">

    <selectKey resultType="java.lang.Short" order="AFTER" keyProperty="id">

    SELECT LAST_INSERT_ID() AS id

    </selectKey>

    insert into user(name, age,password) values (#{name},#{age},#{password})

    </insert>

     在插入操作完成之后,参数user的id属性就已经被赋值了,再在逻辑层利用user.getId()获取就好。

  • 相关阅读:
    OpenGL红宝书例3.1 -- glBufferSubData使用
    JNI调用问题(部分机型崩溃)
    文件编码转换工具
    vs2013安装visual assist和viemu之后提示功能等无效解决
    cocos2d-lua SDK接入
    OpenGL中shader读取实现
    CURL C++网络延时或者最低网速下载设置
    Spring框架
    软件安装方式
    Web前端常见问题
  • 原文地址:https://www.cnblogs.com/wrong5566/p/7400296.html
Copyright © 2011-2022 走看看