mybitas insert 后返回主键ID

原创 2016年08月30日 14:36:46

今天遇到一个问题就是,想插入后继续获得主键然后再次操作!

可能有好几种方法,今天亲自测试使用的一种方法记录一下,分享给大家!

针对的数据库是MYSQ 主键自增l   以下面这个sql为例

<!-- 插入客户档案 -->
<insert id="insertCustomer" parameterType="com.cdel.module.customer.domain.Customer">
        INSERT INTO pss_basedata_customer (customerName,shortName,customerCompany,contacter,principals,cellphone,telephone,address,postcode,isArchive,auditor,auditStatus,auditTime,creator,createTime,modifier,modifyTime,status,remark,sortNum,currentDiscount,areaID,isSpecial)
        VALUES (
            #{customerName},#{shortName},#{customerCompany},#{contacter},#{principals},#{cellphone}, #{telephone},#{address},#{postcode},#{isArchive},#{auditor},#{auditStatus},#{auditTime},#{creator},#{createTime}, #{modifier},#{modifyTime},#{status},#{remark}, #{sortNum},#{currentDiscount}, #{areaID},#{isSpecial}
        )
        <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="customerID">
SELECT @@IDENTITY AS customerID
</selectKey>
    </insert>

方法:1.sql中加入:

  <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="customerID">
 SELECT @@IDENTITY AS customerID
</selectKey>

     2.在dao层接收返回的主键

public Integer insertCustomer(Customer customer) {
getSqlSession().insert("customer.insertCustomer", customer);
return customer.getCustomerID();
}

注意的细节:keyProperty   要写当前实体的主键名称     插入之后不是直接返回主键,而是将你插入的实体的ID赋值,getSqlSession().insert("customer.insertCustomer", customer); 这句话返回的int值还是插入语句影响的记录数  而不是主键值。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Mybatis中,当插入数据后,返回最新主键id的几种方法,及具体用法

一、前言                                      数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅。 ...
  • sinat_30474567
  • sinat_30474567
  • 2016年05月13日 14:41
  • 26109

MyBatis insert操作返回主键

在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而...
  • jbgtwang
  • jbgtwang
  • 2012年02月29日 20:52
  • 178421

mybatis学习之路----insert主键返回 selectKey使用

点滴记载,点滴进步,愿自己更上一层楼。
  • xu1916659422
  • xu1916659422
  • 2017年09月10日 14:00
  • 775

insert新建对象后,返回主键值

举例子: @Insert("insert into p_exchange_prop_log (userid,from_propid,to_propid,type,`describe`,`status...
  • danchejikafo
  • danchejikafo
  • 2016年03月23日 16:48
  • 1563

MyBatis在insert插入操作时返回主键ID的配置

很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键。 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,...
  • tomcat_2014
  • tomcat_2014
  • 2016年03月12日 16:14
  • 2293

MyBatis insert 返回主键的方法

表结构: /*==============================================================*/ /* Table: Dic_City     ...
  • liufeng520
  • liufeng520
  • 2014年02月08日 14:27
  • 6229

常见的几个数据库insert into操作的主键返回值

这几天做管理工具,有一个操作很令...
  • axman
  • axman
  • 2006年07月07日 08:27
  • 8867

Mybatis中insert中返回主键ID的方法

1、XyzMapper.xml insert id=“doSomething" parameterType="map" useGeneratedKeys="true" keyProperty=“y...
  • prevention
  • prevention
  • 2014年06月21日 03:35
  • 27855

mysql语句insert后返回主键

最近开发的一个项目中,因为需要,所以需要使用mybatis中的语句返回一个主键id,语句如下, INSERT INTO F_COMPANY( company_...
  • wojiaohuangyu
  • wojiaohuangyu
  • 2017年01月17日 09:38
  • 2779

ibatis插入返回主键

我们在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。 有些是预先生成(pre-generate)主键的,如Oracle和PostgreSQL...
  • zljjava
  • zljjava
  • 2014年05月21日 10:35
  • 7512
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mybitas insert 后返回主键ID
举报原因:
原因补充:

(最多只允许输入30个字)