`

147. Spring Boot MyBatis升级篇-XML-自增ID

 
阅读更多

 

【视频&交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à 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的主键。对于QuestionQuestionOption的保存是在同一个请求就完成的(如果是题目的保存和选项的保存是两个请求才完成的,那么流程不一样)。在保存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

       我们修改下DemoMappersave返回,增加返回值:

public interface DemoMapper {
    public int save(Demo demo);
}

 

调用代码:

int rs = demoMapper.save(demo);
System.out.println("----->"+rs);

 

很容易把这里的rs当做返回的是Demoid,实际含义是:

insert返回的只是insert方法的情况: 1成功 0失败。

 

视频+交流平台

à Spring Boot网易云课堂视频

http://study.163.com/course/introduction.htm?courseId=1004329008

 

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

分享到:
评论

相关推荐

    mybatis-plus-spring-boot3-starter-3.5.9.jar

    mybatisplus,MyBatis-Plus 是一个 MyBatis 的...如果使用Spring Boot3,请在pom.xml中添加依赖: &lt;groupId&gt;com.baomidou&lt;/groupId&gt; &lt;artifactId&gt;mybatis-plus-spring-boot3-starter &lt;version&gt;3.5.9 &lt;/dependency&gt;

    spring-boot-starter-mybatis-spring-boot-1.0.2.zip

    《Spring Boot集成MyBatis详解》 在Java开发领域,Spring Boot以其简洁的配置和快速的启动特性,已经成为构建微服务应用的首选框架。而MyBatis作为一款强大的持久层框架,深受开发者喜爱,它提供了灵活的SQL映射...

    spring-boot-starter-mybatis-spring-boot-1.3.3.tar.gz

    通过这个起步依赖,我们可以快速地搭建起Spring Boot与MyBatis的整合环境,无需手动配置大量的XML或Java代码。 1. **集成过程** 集成MyBatis到Spring Boot项目的第一步是添加对应的依赖。在`pom.xml`文件中,我们...

    spring-boot-starter-mybatis-spring-boot-2.2.1.zip

    《Spring Boot集成MyBatis详解:基于Spring Boot 2.2.1版本》 在现代Java开发中,Spring Boot框架以其简洁、高效的特性受到了广大开发者喜爱。而MyBatis作为一款优秀的持久层框架,简化了数据库操作,使得SQL与Java...

    spring-boot-starter-mybatis-spring-boot-2.1.2.zip

    - **添加依赖**:在`pom.xml`或`build.gradle`中引入`spring-boot-starter-data-jpa`和`mybatis-spring-boot-starter`依赖。例如,在`pom.xml`中: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;...

    spring-boot-starter-mybatis-spring-boot-2.3.0.tar.gz

    《Spring Boot集成MyBatis详解:以2.3.0版本为例》 Spring Boot作为一款快速开发框架,极大地简化了Java应用的初始化和配置过程。而MyBatis作为一款优秀的持久层框架,以其灵活的SQL操作和良好的注解支持,深受...

    spring-boot-starter-mybatis-spring-boot-1.1.1.zip

    《Spring Boot集成MyBatis详解》 在Java开发领域,Spring Boot以其简洁的配置和快速的应用启动能力,已经成为主流的微服务框架。而MyBatis作为一款轻量级的持久层框架,以其灵活的SQL映射和强大的实体与数据库交互...

    spring-boot-starter-mybatis-spring-boot-2.2.2.zip

    在Spring Boot项目中,我们首先需要在`pom.xml`文件中引入`spring-boot-starter-mybatis`依赖。如下所示: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-data-jpa &lt;groupId&gt;...

    spring-boot-starter-mybatis-spring-boot-1.3.4.zip

    `spring-boot-starter-mybatis`是Spring Boot为MyBatis提供的一个starter,它包含了MyBatis、MyBatis-Spring、以及相关的依赖,使得开发者可以方便地在Spring Boot项目中使用MyBatis。在`pom.xml`或`build.gradle`...

    spring-boot-starter-mybatis-spring-boot-1.3.1.zip

    《Spring Boot集成MyBatis详解》 在Java开发领域,Spring Boot框架因其便捷的配置、自动化的特性以及丰富的生态而广受欢迎。同时,MyBatis作为一款轻量级的持久层框架,以其灵活的SQL映射和优秀的性能,被大量项目...

    spring-boot-starter-mybatis-spring-boot-2.1.3.zip

    《Spring Boot集成MyBatis详解:基于spring-boot-starter-mybatis-2.1.3》 在Java开发领域,Spring Boot以其便捷的初始化、自动配置和开箱即用的特性深受开发者喜爱。而MyBatis作为一款轻量级的持久层框架,提供了...

    spring-boot-starter-mybatis-spring-boot-2.1.0.tar.gz

    通过这个"spring-boot-starter-mybatis-spring-boot-2.1.0"压缩包,开发者可以直接获取到对应版本的依赖,方便进行项目的初始化和升级,节省了查找和验证不同版本兼容性的时间。而免费下载的特性则进一步降低了开发...

    spring-boot-starter-mybatis-spring-boot-3.0.1.zip

    《Spring Boot 3.0.1 集成 MyBatis 深度解析与实践指南》 在当今快速发展的Java开发领域,Spring Boot以其简洁的配置和强大的功能深受开发者喜爱。而MyBatis作为一款优秀的持久层框架,简化了数据库操作,使得数据...

    spring-boot-starter-mybatis-spring-boot-1.0.1.tar.gz

    通过这个starter,我们可以快速搭建起Spring Boot和MyBatis的整合环境,避免手动配置大量的XML配置文件。 1. **依赖引入**: 在`pom.xml`文件中,我们需要添加`spring-boot-starter-data-jpa`和`spring-boot-...

    spring-boot-starter-mybatis-spring-boot-1.3.4.tar.gz

    《Spring Boot集成MyBatis详解:基于1.3.4版本》 在现代Java开发领域,Spring Boot以其简洁、高效和快速启动的特点深受开发者喜爱。而MyBatis作为一款轻量级的持久层框架,提供了灵活的SQL操作,使得数据库访问更加...

    spring-boot-starter-mybatis-spring-boot-2.1.2.tar.gz

    《Spring Boot集成MyBatis详解:基于spring-boot-starter-mybatis-2.1.2》 在现代Java开发中,Spring Boot以其简化配置、快速启动的特性,深受开发者喜爱。而MyBatis作为轻量级的持久层框架,以其灵活的SQL映射,...

    spring-boot-starter-mybatis-spring-boot-2.1.0.zip

    《Spring Boot集成MyBatis详解》 在Java开发领域,Spring Boot以其简洁的配置和快速的启动特性,已经成为构建微服务应用的首选框架。而MyBatis作为一款优秀的持久层框架,通过SQL映射文件实现了灵活的数据库操作,...

    spring-boot-starter-mybatis-spring-boot-2.3.1.tar.gz

    《Spring Boot集成MyBatis详解:以spring-boot-starter-mybatis-2.3.1为例》 在现代Java开发中,Spring Boot以其简洁、高效的特点成为首选框架,而MyBatis作为轻量级的持久层框架,也因其灵活的数据访问能力受到...

    spring-boot-starter-mybatis-spring-boot-1.2.1.tar.gz

    - 添加依赖:在`pom.xml`或`build.gradle`文件中引入`spring-boot-starter-data-jpa`和`mybatis-spring-boot-starter`依赖。 - 配置数据源:Spring Boot会自动发现并配置数据源,只需要在`application.properties`...

    spring-boot-starter-mybatis-spring-boot-1.3.0.tar.gz

    Spring Boot Starter MyBatis是Spring Boot为MyBatis提供的起步依赖,它包含了MyBatis、MyBatis-Spring等核心组件,使得开发者可以快速地在Spring Boot项目中集成MyBatis,避免了繁琐的配置工作。 2. **集成步骤**...

Global site tag (gtag.js) - Google Analytics