背景在企业开发中,需要获取新插入到数据库中的记录主键作为业务逻辑的一部分,那么如何获取相应的主键,是这篇博客的出发点。上一篇博客mybatis学习笔记(六):添加用户信息中相关的配置和代码,大家注意的话有看到有一行打印获取主键的代码:System.out.println(user.getId());控制台中打印出来的结果为:0,事实上在数据库中插入的记录的id是一个自增id,不是0,所以如何不做一
转载 2023-12-10 14:38:19
712阅读
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能。比如在表的关联关系中,将数据插入主表之后需要再插入子表,我们需要把主表的主键作为外键插入子表中。这样的话就需要获取主键值了。所以涉及主键返回的问题。1.自增主键返回针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的
转载 8月前
685阅读
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 情景一:针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式 或 在插入
原创 2021-08-20 11:40:29
353阅读
使用mybatis-gui生成的插入语句都有带着这个:useGeneratedKeys="true"然后插入的实体类里面就有id了.
原创 2023-06-30 00:27:25
216阅读
1、mybatis插入一条数据,返回主键id,传入的参数可以是一个实体类,也可以是map。如下:...或...java代码:public int doSomething(Map parameters);或者public int doSomething (YourClass c);要在map或c中有一个字段名为yourId,Mybatis会自动把主键值赋给这个字段
原创 2022-06-17 08:19:37
10000+阅读
在使用插入语句insert的时候,我们可以选择直接让其返回id,代码如下:mapper.xml文件 <!--注意,这里的 id 要和传入的实体对象的id属性名对应起来--><insert id="insert" useGeneratedKeys="true" keyProperty="id"> insert into a (name) value (#{name})</insert>dao接口文件//注意!这里返回的int是正常
原创 2021-05-25 20:40:50
1190阅读
在xml中 insert 标签中定义useGeneratedKeys为true,使用自增id,用来设置返回主键id的值 keyProperty 代表实体类映射字段段 keyColumn 代表数据库字段 useGeneratedKeys="true" keyProperty="id" 两个属性配合使用,支持单条或批量插入返回主键信息。<insert id="insertTSupply" par
原创 2023-05-25 11:22:23
195阅读
MyBatis 插入返回自增主键
原创 2021-06-01 15:40:55
698阅读
整个demo放在Github上,地址:【https://github.com/Damaer/Mybatis-Learning】,项目是mybatis-05-CRUD,下载下来只需要maven环境以及mysql环境就
原创 2021-04-24 23:36:11
666阅读
mysql,mybatis 返回插入主键id <insert id="insertCompanyInfo" parameterType="com.yjf.entity.TCompanyInfo" > insert into T_Company_Info (Company_Id, IsFranchisee, Compan
原创 2012-10-16 15:01:00
614阅读
xml 配置的可能简单点,网上教程也多。 用java注解的比较少: // 动态插入 @InsertProvider(type=UserDynaSqlProvider.class,method="insertUser") @Options(useGeneratedKeys = true, keyProperty = "id") void insertUser(Use
转载 2019-08-01 00:36:00
173阅读
2评论
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记。 类似下面这段代码一样获取插入后的主键 经过查询网上资料,发现大致有两种方式。 方式一: 在实体类的映射文件 "*Mapper.xml" 这样写: Tips: 由于我在MySQL数
转载 2018-04-19 16:43:00
269阅读
2评论
最近开发全栈项目时,前端有个数据行可以被随便修改,所以必须给他一个标识记录该数据行,即向MySQL数据库中插入一条记录后,需要获取此条记录的主键id值返回给前端。原代码 <insert id="insertArticle" parameterType="Article">insert into article(title,create_date,content,name)values(#{articleTitle},#{articleCreateDate},#{articleConten
原创 2021-07-09 10:11:53
1614阅读
最近开发全栈项目时,前端有个数据行可以被随便修改,所以必须给他一个标识记录该数据行,即向MySQL数据库中插入一条记录后,需要获取此条记录的主键id值返回给前端。原代码 <insert id="insertArticle" parameterType="Article">insert into article(title,create_date,content,name)values(#{articleTitle},#{articleCreateDate},#{articleConten
原创 2022-03-14 11:53:56
1250阅读
向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A、B中插入数据(A的主键是B的外键),向A表中插入数据之后,向B表中插入数据时需要用到A的主键。 比如添加一个用户,同时返回
转载 2017-03-10 14:57:00
304阅读
2评论
问题描述 添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前端调用中需要插入多个表的场景。除了添加单条记录时获取主键值,有时候可能需要获取批量添加记录时各记录的主键值。问题分析暂无。解决方案MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值。添加单一记录时返回主键ID添加一条记录时返回主键值,在xml映射器和接口映射器中都可以实现。在映射器中配置获取记录主
转载 2024-07-28 20:59:46
1697阅读
在一些管理系统项目中,对于一些特殊的业务必须要进行返回主键id,那么在mybatis框架中是如何返回主键id的呢?mybatis提供了不少操作sql语句的标签,其中包括了新增的标签,其返回主键相关属性也是该标签提供的,与返回主键相关的属性如下:属性描述keyProperty(仅对insert和update有用)此属性的作用是将插入或更新操作时的返回值赋值给PO类的某个属性,通常会设置为主键对应的
转载 2023-10-18 21:57:52
166阅读
1.1 简述Mybatis-plus提供了多种主键生成策略, 可以在Pojo类中主键上加注解进行配置,例如数据库主键自增 @TableId(type=IdType.AUTO)1.2 五种策略1.2.1 AUTO(自动增长策略)AUTO自动增长策略,这个配合数据库使用,Mysql可以,但是Oracle不行。不配合会报错,这里就不细展开了,有兴趣的同学可以去试一试。在主键字段上加上 @TableId(
转载 2024-09-23 00:40:22
786阅读
传参尽量不要传Map,尽量明确参数类型 用Map传参的第一个(也是最大的一个)弊端就是:这会导致后续接手和维护的人对于代码传的参数不是很清楚,尤其是随着sql量及项目复杂度的增加,带来很大的不确定性也随之增加,非常不利于后续的维护。db查询的字段名要与结果实体的属性名一致即sql里返回的字段名要与结果实体的属性名要一致,否则业务代码里是获取到的查询结果会为空。如果不一致,则有3种解决
在一些管理系统项目中,对于一些特殊的业务必须要进行返回主键id,那么在mybatis框架中是如何返回主键id的呢?mybatis提供了不少操作sql语句的标签,其中包括了新增的标签,其返回主键相关属性也是该标签提供的,与返回主键相关的属性如下:属性描述keyProperty(仅对insert和update有用)此属性的作用是将插入或更新操作时的返回值赋值给PO类的某个属性,通常会设置为主键对应的
转载 2023-10-18 21:57:51
66阅读
  • 1
  • 2
  • 3
  • 4
  • 5