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 insert操作返回主键

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

sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID

在insert语句之后加上: SELECT @@IDENTITY 就可以立即得到之前insert数据的ID 如: insert into news(newsTitle,n...
  • lllkey
  • lllkey
  • 2011-12-17 09:01
  • 15984

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

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

1、XyzMapper.xml insert id=“doSomething" parameterType="map" useGeneratedKeys="true" keyProperty=“y...

sql插入并返回自增主键

Connection conn = ConnectionManager.getConnection(); try { conn.setAutoCommit(fa...
  • pasken
  • pasken
  • 2016-05-11 19:42
  • 1382

sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID

原文链接:http://blog.csdn.net/lllkey/article/details/7079277 在insert语句之后加上: [sql] view plain...

mybatis的insert元素属性详解 及 在insert插入数据获取主键id的值

其属性如下:    parameterType ,入参的全限定类名或类型别名    keyColumn ,设置数据表自动生成的主键名。对特定数据库(如PostgreSQL),若自动生成的主...

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

举例子: @Insert("insert into p_exchange_prop_log (userid,from_propid,to_propid,type,`describe`,`status...

MyBatis insert操作返回主键

在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而言,在...
  • Truong
  • Truong
  • 2014-01-02 18:31
  • 5038

mysql语句insert后返回主键

最近开发的一个项目中,因为需要,所以需要使用mybatis中的语句返回一个主键id,语句如下, INSERT INTO F_COMPANY( company_...

向数据库插入数据后返回新插入行的主键

在开发的时候,大家可能也遇见过下面类似的问题。 场景说明: 存在表1,表2两张表,两表满足以下条件: 表1 的主键为表2的外键 表1的主键为自动编号,所以在插入数据时,会自增,无需人为干预...
  • tiana0
  • tiana0
  • 2013-10-09 23:17
  • 6589
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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