上一篇我们运用spring boot 实现的一个简单的 url 访问。同时我们也留下了一个疑问,为什么我们只需要一个@RestResponse
标签就能返回json。然而一个正常的项目的数据来源一定是少不了数据库的。所以今天就和我一起来学习一下spring boot 是如何通过 Mybatis 来访问数据库的。
首先我们先将Mybatis 和 MySQL驱动加入pom文件:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
好了,下面我们开始配置datasource:
首先将resource下面的application.properties文件删除。然后在此位置新建application.yml。如果喜欢用properties就无需此步操作。
好了,下面直接上代码。这里我会提过两种方式实现Mybatis。一种是基于注解的方式,另一种是基于mapper的方式。
1.基于Mybatis注解实现数据查询
首先,在spring boot 的主函数上添加@MapperScan
标签。括号中为要扫描的路径。如果不喜欢这样,可以在每个mapper的映射类上面加@Mapper
标签替代。
UserDao.class
UserService.class
UserController.class
User.class
好了,我们来看一下成果吧。
2.基于mapper的方式实现数据查询
先在resource下创建mapper文件夹,然后在此文件夹下创建user-mapper.xml。如图:
在application.yml
中加入mapper的配置。
编写user-mapper.xml文件
删除UserDao.class中的注解
启动项目
到此,Mybatis的集成就结束了。可能有的小伙伴们会有疑问。在controller的@RequestMapping
里面也没看到**/api**,但为什么在请求的Url中会出现**/api**呢?可能细心地小伙伴已经发现是在我的application.yml 中配置的。没错,就是这里。不得不说,spring boot 对于 restful风格支持的很好。
由于上一篇中留下了一个问题,我在这里简单的解释下,我们可以看一下@RestResponse
的源码。
由此可以看出它是由@Controller
和@ResponseBody
组成的。
更加详细的内容可以看这篇文章SpringBoot中常用标签整理