Mybatis:插入数据返回自增主键】的更多相关文章

方法有很多,参考 mysql函数之六:mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey 这里记录一下工作中自己用到的selectkey方法的详细过程. pojo类: public class Client { /** * 客户id */ @Id private Integer id; /** * 客户名称 */ private String name; //其他的一些域自己补充,对应get/set方法也要添加 /** * 获取客户id * * @ret…
使用Mybatis作为工具连接MySQL,要求在插入数据之后返回自增主键 一开始也很迷惑,Mybatis使用insert之后,成功返回的是1,失败会报错或返回0,主键去哪找来 后来知道Mybatis可以把自增主键的值放到实体中返回 这是实体类的定义(实体类必须有一个字段接收主键的值) public class UserEntity { private Long id; private String username; private String type; private String nam…
XML <insert id="insert" parameterType="com.stone.model.Person"> <!-- selectKey 是做主键返回的 keyProperty 接受返回主键的属性 order: insert语句和生成主键的sql执行顺序:mysql是AFTER,在oracle中是BEFORE resultType:返回主键的数据类型 生成主键的sql: select LAST_INSERT_ID() -->…
一.场景: 插入数据库的值需要立即得到返回的主键id进行下一步程序操作 二.解决方法: 第一种:使用通用mapper的插入方法 Mapper.insertSelective(record): 此方法:插入一条数据,只插入不为null的字段,不会影响有默认值的字段支持Oracle序列,UUID,类似Mysql的INDENTITY自动增长(自动回写)优先使用传入的参数值,参数值空时,才会使用序列.UUID,自动增长 controller的实际应用:使用方法id会直接将映射到参数的实体上使用时直接使用…
首先把实体类贴出来(这里只贴出属性,其它的就是getter和setter方法): public class Around {     private String xccd;  //对应主键     private String xcnm;     private String stcd;     private String sttp;     private BigDecimal lnth;     private String lead;     private String mans; …
实体信息如下 @Data public class ApiCertificate{ @Id @GeneratedValue(generator = "JDBC") private Integer id; private String url; } 插入方法在saveCertificate中,返回结果如下:  最终发现原因:设计数据库的时候没有给设置主键id自增…
方法一:(Oralce不支持这种写法) useGeneratedkeys 默认值为 false,含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中. keyProperty 的值必须为数据库中主键且是自动增长的字段.(一般是 id 字段) <insert id="insert" parameterType="Person" useGeneratedKeys="true"…
<insert id="addUser" parameterType="com.liupan.user"> <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> select currval('user_user_id_seq') as id </selectKey> inser…
1.场景介绍: ​ 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条数,那么这个时候我们想要得到相应的这条新增数据的ID,该怎么办呢? 2.插入数据返回自增主键ID方法(一) 在映射器中配置获取记录主键值 xml映射: 在xml中定义useGeneratedKeys为true,返回主键id的值,keyProperty和keyColumn分别代表数…
我们都知道Mybatis在插入单条数据的时候有两种方式返回自增主键: 1.对于支持生成自增主键的数据库:useGenerateKeys和keyProperty. 2.不支持生成自增主键的数据库:<selectKey>. 但是怎对批量插入数据返回自增主键的解决方式网上看到的还是比较少,至少百度的结果比较少. Mybatis官网资料提供如下: First, if your database supports auto-generated key fields (e.g. MySQL and SQL…