现在我们要使用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)
一、java文件夹
1、新建实体类
获取到数据库数据以后,我们创建一个类来存放数据库数据,类中的属性是和数据库的字段一一对应的,这个User类我们放在 entity目录下
不要忘记写get方法(用于查数据库数据)和 set方法 (用于改数据库数据)
2、Controller层的UserController.java
第一步就是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();
}
}
3、第二步:Service层的UserService.java
下面就开始实现上面突然莫名的 UserService,这个时候Service层就会在Dao层寻找是否存在对应的操作
@Service //告诉项目,这个类属于Service层
public class UserService {
@Resource
private UserMapper userMapper; //这个属于第三步的内容,Dao层的接口函数(持久层,和数据库打交道)
public List<User> list(){
return userMapper.list();
}
}
4、第三步:Dao层的UserMapper
这是一个接口函数,只是列举出可以有哪些操作,具体实现在其他地方
public interface UserMapper{
public List<User> list();
}
5、在启动类添加@MapperScan
为了让项目知道,java文件下有个Dao层的UserMapper接口,我们使用MapperScan,只不过接口函数我们统一放在mapper文件下
二、resources文件夹
1、pom.xml文件
下面就要正式开始使用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>
2、编写配置文件application.properties (1)
既然要连接数据库,那就需要让项目知道 你要连接数据库里的哪个表,数据库的主人是谁,密码是多少
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=密码
3、接口映射文件.xml文件
上面的接口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>
4、编写配置文件application.properties (2)
和上面的java文件一样,那里是在启动类里告诉项目mapper文件是Dao层的,那resources文件也需要告诉项目哪个是Dao层的,这样的话,项目就可以把接口和xml文件建立起映射关系
mybatis.mapper-locations=classpath:mapper/**/*.xml
这个的意思是resources下的mapper文件夹,无论xml文件还是文件夹含xml文件,都会被扫描到
三、使用HTTP CLIENT测试
在项目的根目录下新建一个http文件夹,里面文件的后缀必须是 .http
项目的端口号这里设置的是9090,像下面这样输入就可以开始测试了(需要先启动springboot工程)
如果你的数据库里没有内容,那打印的就是一个 [ ],如果有内容,大致样式就像下面这样