【视频&交流平台】
http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
https://gitee.com/happyangellxq520/spring-boot
http://412887952-qq-com.iteye.com/blog/2321532
需求缘起:
在上一篇文章中,我们已经会集成MyBatic并且完成了保存数据的动作,但是现在如果你细心观察的话,在浏览器看到的数据中id=0。有人说:我不需要返回id呀,id返回我也用不到,返回为0的话,无所谓了。但是在实际项目中,我们是有很多场景需要用到返回的id的。网友就有疑问了,博主你吹牛吧,很多场景,那很多是多少呢?你说两个来听听。
使用场景 —— 保存时返回id的使用场景:
既然网友要让博主回答两个,那就回答两个吧:
(1)场景1:在开发app的时候,我们对于朋友圈有留言的功能,留完言之后,那么想要删除,这时候,请求请求到后台执行save()动作之后,就需要返回留言信息的id,不然App端发起删除的时候,就不知道删除哪条评论了。
(2)场景2:在题库管理的时候,我们需要录入题目信息以及题库的选项,对于题库的选项是可以多个,如下:
题目:你最喜欢的是技术是?
A: Java语言 B: PHP语言 C: python语言 D:C语言
那么对于题目信息我们会保存到一张表中Question,对于选项,我们会保存到另外一张表QuestionOption,对于表QuestionOption会有一个外键qid,也就是question的主键。对于Question和QuestionOption的保存是在同一个请求就完成的(如果是题目的保存和选项的保存是两个请求才完成的,那么流程不一样)。在保存QuestionOption的时候,需要用到Question的主键,这时候后台的保存代码是这样的:
Question question = new Question(); int qid = save(Question); QuestionOption qo = new QuestionOption(); qo.setQid(qid); int qid = save(QuestionOption);
这种场景就需要在保存Question的时候,就返回Question的主键了。
类似的场景很多,总之来说,有很多场景需要我们在保存完数据之后就获取到自增主键id。
示例代码:
在上面说了这么多,其实这个很简单,只要在Demo.xml配置下接口,只需要修改下Demo.xml文件:
<insert id="save" parameterType="com.kfit.demo.bean.Demo" useGeneratedKeys="true" keyProperty="id"> insert into demo (name) values (#{name}) </insert>
这时候在访问http://127.0.0.1:8080/save 就可以看到如下的返回信息:
{"id":22,"name":"张三"}
误区1:使用save返回值当做主键id
我们修改下DemoMapper的save返回,增加返回值:
public interface DemoMapper { public int save(Demo demo); }
调用代码:
int rs = demoMapper.save(demo); System.out.println("----->"+rs);
很容易把这里的rs当做返回的是Demo的id,实际含义是:
insert返回的只是insert方法的情况: 1成功 0失败。
视频+交流平台:
http://study.163.com/course/introduction.htm?courseId=1004329008
http://412887952-qq-com.iteye.com/blog/2321532
相关推荐
mybatisplus,MyBatis-Plus 是一个 MyBatis 的...如果使用Spring Boot3,请在pom.xml中添加依赖: <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter <version>3.5.9 </dependency>
《Spring Boot集成MyBatis详解》 在Java开发领域,Spring Boot以其简洁的配置和快速的启动特性,已经成为构建微服务应用的首选框架。而MyBatis作为一款强大的持久层框架,深受开发者喜爱,它提供了灵活的SQL映射...
通过这个起步依赖,我们可以快速地搭建起Spring Boot与MyBatis的整合环境,无需手动配置大量的XML或Java代码。 1. **集成过程** 集成MyBatis到Spring Boot项目的第一步是添加对应的依赖。在`pom.xml`文件中,我们...
《Spring Boot集成MyBatis详解:基于Spring Boot 2.2.1版本》 在现代Java开发中,Spring Boot框架以其简洁、高效的特性受到了广大开发者喜爱。而MyBatis作为一款优秀的持久层框架,简化了数据库操作,使得SQL与Java...
- **添加依赖**:在`pom.xml`或`build.gradle`中引入`spring-boot-starter-data-jpa`和`mybatis-spring-boot-starter`依赖。例如,在`pom.xml`中: ```xml <groupId>org.springframework.boot <artifactId>...
《Spring Boot集成MyBatis详解:以2.3.0版本为例》 Spring Boot作为一款快速开发框架,极大地简化了Java应用的初始化和配置过程。而MyBatis作为一款优秀的持久层框架,以其灵活的SQL操作和良好的注解支持,深受...
《Spring Boot集成MyBatis详解》 在Java开发领域,Spring Boot以其简洁的配置和快速的应用启动能力,已经成为主流的微服务框架。而MyBatis作为一款轻量级的持久层框架,以其灵活的SQL映射和强大的实体与数据库交互...
在Spring Boot项目中,我们首先需要在`pom.xml`文件中引入`spring-boot-starter-mybatis`依赖。如下所示: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-data-jpa <groupId>...
`spring-boot-starter-mybatis`是Spring Boot为MyBatis提供的一个starter,它包含了MyBatis、MyBatis-Spring、以及相关的依赖,使得开发者可以方便地在Spring Boot项目中使用MyBatis。在`pom.xml`或`build.gradle`...
《Spring Boot集成MyBatis详解》 在Java开发领域,Spring Boot框架因其便捷的配置、自动化的特性以及丰富的生态而广受欢迎。同时,MyBatis作为一款轻量级的持久层框架,以其灵活的SQL映射和优秀的性能,被大量项目...
《Spring Boot集成MyBatis详解:基于spring-boot-starter-mybatis-2.1.3》 在Java开发领域,Spring Boot以其便捷的初始化、自动配置和开箱即用的特性深受开发者喜爱。而MyBatis作为一款轻量级的持久层框架,提供了...
通过这个"spring-boot-starter-mybatis-spring-boot-2.1.0"压缩包,开发者可以直接获取到对应版本的依赖,方便进行项目的初始化和升级,节省了查找和验证不同版本兼容性的时间。而免费下载的特性则进一步降低了开发...
《Spring Boot 3.0.1 集成 MyBatis 深度解析与实践指南》 在当今快速发展的Java开发领域,Spring Boot以其简洁的配置和强大的功能深受开发者喜爱。而MyBatis作为一款优秀的持久层框架,简化了数据库操作,使得数据...
通过这个starter,我们可以快速搭建起Spring Boot和MyBatis的整合环境,避免手动配置大量的XML配置文件。 1. **依赖引入**: 在`pom.xml`文件中,我们需要添加`spring-boot-starter-data-jpa`和`spring-boot-...
《Spring Boot集成MyBatis详解:基于1.3.4版本》 在现代Java开发领域,Spring Boot以其简洁、高效和快速启动的特点深受开发者喜爱。而MyBatis作为一款轻量级的持久层框架,提供了灵活的SQL操作,使得数据库访问更加...
《Spring Boot集成MyBatis详解:基于spring-boot-starter-mybatis-2.1.2》 在现代Java开发中,Spring Boot以其简化配置、快速启动的特性,深受开发者喜爱。而MyBatis作为轻量级的持久层框架,以其灵活的SQL映射,...
《Spring Boot集成MyBatis详解》 在Java开发领域,Spring Boot以其简洁的配置和快速的启动特性,已经成为构建微服务应用的首选框架。而MyBatis作为一款优秀的持久层框架,通过SQL映射文件实现了灵活的数据库操作,...
《Spring Boot集成MyBatis详解:以spring-boot-starter-mybatis-2.3.1为例》 在现代Java开发中,Spring Boot以其简洁、高效的特点成为首选框架,而MyBatis作为轻量级的持久层框架,也因其灵活的数据访问能力受到...
- 添加依赖:在`pom.xml`或`build.gradle`文件中引入`spring-boot-starter-data-jpa`和`mybatis-spring-boot-starter`依赖。 - 配置数据源:Spring Boot会自动发现并配置数据源,只需要在`application.properties`...
Spring Boot Starter MyBatis是Spring Boot为MyBatis提供的起步依赖,它包含了MyBatis、MyBatis-Spring等核心组件,使得开发者可以快速地在Spring Boot项目中集成MyBatis,避免了繁琐的配置工作。 2. **集成步骤**...