Mybatis insert or update return primary key

原创 2015年11月18日 10:19:05

1、mybatis插入或修改实体后,返回受影响的记录个数(注:所用数据库为mysql)。

mybatis 实体的mapper.xml文件:

<insert id="insertSelective" parameterType="com.***.member.entity.MemberEntity">

Dao接口:

int insertSelective(MemberEntity record);

DaoTest类:

int num = memberEntityMapper.insert(member);

num返回的则为插入数据库后影响的记录个数。


2、mybatis插入或修改实体后,返回主键id。这时就需要使用useGeneratedKeyskeyProperty。

useGeneratedKeys (仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段),默认值:false。
keyProperty (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值或者通过 insert 语句的 selectKey 子元素设置它的键值,默认:unset。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。
mybatis实体的mapper.xml文件:

<insert id="insert" parameterType="com.ydsj.member.entity.MemberEntity" useGeneratedKeys="true" keyProperty="memberid">

Dao接口:

int insert(MemberEntity record);

DaoTest类:

int num = memberEntityMapper.insert(member);
Long memberId = member.getMemberid(); 

keyProper 指定的是实体类中memberid,不是数据库中的memberId;num为返回受影响的记录个数,memberId为实体主键值。



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

MyBatis实现SaveOrUpdate

MyBatis实现SaveOrUpdate这篇文章主要讲如何通过xml方式实现SaveOrUpdate,但是仍然建议在Service中实现。例子 select count(*) from...
  • isea533
  • isea533
  • 2015年05月08日 13:31
  • 37035

Mybatis实现UpdateOrSave方法

引言(需求)          需求来了,听好了。          车主故事录入(车主分享自己的购车经历),按照长城的需求来说,一个车主只能分享一次故事,如果在进入 个人中心里,需判断是否有车主故事...
  • u011626283
  • u011626283
  • 2016年12月11日 21:32
  • 2884

mybatis判断用insert还是update

mybatis
  • qq_36637705
  • qq_36637705
  • 2017年11月14日 14:42
  • 417

mybatis insert & update

mybatis insert和update混合使用,当主键不存在就插入数据,主键冲突时,更新数据 。insert into ·····on duplicate update······case...
  • baidu_28514449
  • baidu_28514449
  • 2016年10月10日 23:57
  • 2662

mybatis中使用replace into和 insert INTO … ON DUPLICATE KEY UPDATE批量操作

一、replace into REPLACE INTO table_name (product_id,departs_date,price_value) VALUES (...
  • lxxxzzl
  • lxxxzzl
  • 2014年11月17日 20:20
  • 18141

mysql-insert or update

insert into fnbl_client_mapping (principal, sync_source, guid, luid, last_anchor) select ?,?,?,?,? f...
  • l790187749
  • l790187749
  • 2013年11月20日 17:17
  • 2339

Oracle实现数据不存在则插入,数据存在则更新(insert or update)

思路是写一个函数,先按条件查询数据,如果查询到数据则更新,如果没有查询到数据则插入: create or replace function fn_merge_index(statdate ...
  • jumtre
  • jumtre
  • 2014年09月28日 17:29
  • 24183

数据库--MyBatis的(insert,update,delete)三种批量操作

MyBatis中批量插入   方法一:     resultType="java.lang.String">   SELECT CURRENT_TIMESTAMP()...
  • yangweixing10
  • yangweixing10
  • 2014年04月09日 15:15
  • 15498

Mybatis不重复批量写及相关问题

MyBatis批量入库及排重,及其并发的问题。
  • loongshawn
  • loongshawn
  • 2016年08月31日 19:21
  • 3886

oracle return into 用法

CREATE TABLE t1 (id NUMBER(10),description VARCHAR2(50),CONSTRAINT t1_pk PRIMARY KEY (id)); CREA...
  • whhitgen
  • whhitgen
  • 2013年10月09日 16:04
  • 3077
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mybatis insert or update return primary key
举报原因:
原因补充:

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