现在我们要使用IDEA自带的HTTP CLIENT查询数据库中的User表,我们从controller层开始向下写(你可以尝试从Dao层看到Controller层,或者反着来)
Controller层 —— 将Service层实现好的操作提供给用户使用 (客户开始点菜)
Service层 —— Dao层操作的具体实现 (大厨开始做菜)
Dao层 —— 以简洁明了的方式告诉你,我能执行哪些操作 (查询做这道菜的菜谱)
下面就先说明java文件夹需要有哪些操作,再说resources文件夹需要有哪些操作

目录
2、Controller层的UserController.java
3、第二步:Service层的UserService.java
2、编写配置文件application.properties (1)
4、编写配置文件application.properties (2)
获取到数据库数据以后,我们创建一个类来存放数据库数据,类中的属性是和数据库的字段一一对应的,这个User类我们放在 entity目录下

不要忘记写get方法(用于查数据库数据)和 set方法 (用于改数据库数据)
第一步就是controller层新建一个UserController文件,Controller层接收到请求以后,就会找Servic层要数据,所以我们下面第二步就是新建一个Service层的文件

- @RestController //等价于@ResponseBody + @Controller
- public class UserController {
-
- @Resource
- private UserService userService; //Service层的类(第二步的内容,用于实现业务逻辑)
-
- @GetMapping("/user")
- public List<User> list(){
- return userService.list();
- }
- }
下面就开始实现上面突然莫名的 UserService,这个时候Service层就会在Dao层寻找是否存在对应的操作
- @Service //告诉项目,这个类属于Service层
- public class UserService {
- @Resource
- private UserMapper userMapper; //这个属于第三步的内容,Dao层的接口函数(持久层,和数据库打交道)
-
- public List<User> list(){
- return userMapper.list();
- }
- }
这是一个接口函数,只是列举出可以有哪些操作,具体实现在其他地方
- public interface UserMapper{
- public List<User> list();
- }
为了让项目知道,java文件下有个Dao层的UserMapper接口,我们使用MapperScan,只不过接口函数我们统一放在mapper文件下

下面就要正式开始使用Mybatis来连接数据库了,所以我们需要引入Mybatis的依赖,以及数据库连接依赖
- <!-- Mybatis-->
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>2.1.3</version>
- </dependency>
-
- <!-- 数据库连接 -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <scope>runtime</scope>
- </dependency>
既然要连接数据库,那就需要让项目知道 你要连接数据库里的哪个表,数据库的主人是谁,密码是多少

- spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-
- spring.datasource.url=jdbc:mysql://localhost:3306/库名?\
- useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&\
- autoReconnect=true&allowMultiQueries=true&rewriteBatchedStatements=true
-
- spring.datasource.username=用户名
-
- spring.datasource.password=密码
上面的接口UserMapper只是告诉你有哪些操作是可行的,至于操作的实现,并没有提及,所以我们需要在xml文件中对接口函数进行实现
我们新建一个mapper目录,在这个目录下新建一个UserMapper.xml文件夹,来对应上面的UserMapper接口
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
- <!--namespace = 包名 + 接口名(mapper文件下的接口)-->
- <mapper namespace="com.example.demo.mapper.UserMapper">
- <!--id——接口类函数名-->
- <!--parameterType——接口类形参类型-->
- <!--resultType——接口类函数返回值-->
- <select id="list" resultType="com.example.demo.entity.User">
- select * from user
- </select>
- </mapper>
和上面的java文件一样,那里是在启动类里告诉项目mapper文件是Dao层的,那resources文件也需要告诉项目哪个是Dao层的,这样的话,项目就可以把接口和xml文件建立起映射关系
![]()
mybatis.mapper-locations=classpath:mapper/**/*.xml
这个的意思是resources下的mapper文件夹,无论xml文件还是文件夹含xml文件,都会被扫描到
在项目的根目录下新建一个http文件夹,里面文件的后缀必须是 .http

项目的端口号这里设置的是9090,像下面这样输入就可以开始测试了(需要先启动springboot工程)

如果你的数据库里没有内容,那打印的就是一个 [ ],如果有内容,大致样式就像下面这样
