目录
一、创建SpringBoot项目
二、添加mybatis依赖
三、配置mybatis
四、配置mybatis日志
五、开始测试
1.创建一个数据库
2.创建要使用的文件夹和文件
建立完的目录
2.1.创建实体类
2.2.创建mapper接口文件
2.3.创建数据库xml文件
2.4.创建Service接口文件
2.5.创建impl实现类文件
2.6.创建Controller控制层文件
3.启动类加上扫描
六、大功告成,run
在pom.xml中添加下面的依赖,点击刷新maven
注意:要添加到
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.1
mysql
mysql-connector-java
runtime
在application.yaml中添加下面代码
如果没有这个文件,就去看上一节SpringBoot基础
注意yaml格式严谨,每个缩进都不能改
修改成自己的数据库名称、用户名、密码
spring:
datasource:
url: jdbc:mysql://localhost:3306/springboot_mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT
username: root
password: 123456789
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mapper/*.xml #对应mapper映射xml文件所在路径
type-aliases-package: com.kyw.entity #对应实体类entity层路径
到这里就已经配制好mybatis了,接下来是测试,并完成一个findAll方法
在yaml配置文件中配置
顶格添加下面的代码
注意修改成自己mapper层的路径:com.kyw.mapper
logging.level.com.kyw.mapper: debug #mybatis配置日志文件,选择自己的mapper层路径
说明
debug 是日志层级
日志的级别:
FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试)
从左到右打印的内容越来越详细
可以自己创建一个,也可以跟着我来
下面数据库sql文件,可以快速创建
/*
Navicat Premium Data Transfer
Source Server : 本地数据库
Source Server Type : MySQL
Source Server Version : 50726
Source Host : localhost:3306
Source Schema : springboot_mybatis
Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001
Date: 24/09/2022 10:31:18
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '王路飞', 10);
INSERT INTO `user` VALUES (2, '索隆', 10);
INSERT INTO `user` VALUES (3, '111', 111);
INSERT INTO `user` VALUES (4, '111', 111);
SET FOREIGN_KEY_CHECKS = 1;
文件夹名称问题
不同的团队使用的名称不一样,看自己喜欢那种,这里使用 等号前面的名称
mapper=dao :就是写方法的接口文件,通过它连接 mybatis的xml文件
entity = model :是 实体类
在com.kyw下创建entity文件夹 在entity下创建Test的实体类
配置上lombok
这是干嘛的???
lombok是方便我们操作实体类的工具,有了它我们就不需要手动添加 get,set,toString方法了,在类上加一个@Data 注解就OK了。
下面代码加到pom.xml的dependencies标签内部,再刷新maven就行了
org.projectlombok
lombok
true
这里对应数据库里面的字段
package com.kyw.entity;
import lombok.Data;
@Data
public class Test {
private Long id;
private String name;
private int age;
}
在com.kyw下创建mapper文件夹,在mapper下创建TestMapper接口文件
package com.kyw.mapper;
import com.kyw.entity.Test;
import java.util.List;
public interface TestMapper {
//findAll方法
List findAll();
}
在resources下创建mapper文件夹,并创建TestMapper.xml文件
id,name,age
在com.kyw里面创建service文件夹,在service里面创建TestService接口文件
package com.kyw.Service;
import com.kyw.entity.Test;
import java.util.List;
public interface TestService {
List findAll();
}
在service文件夹里面创建impl文件夹,在impl里面创建TestServiceImpl的类文件
并加上@service注解和实现TestService接口,并继承上面的接口
package com.kyw.Service.impl;
import com.kyw.Service.TestService;
import com.kyw.entity.Test;
import com.kyw.mapper.TestMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class TestServiceImpl implements TestService {
// @Autowired Autowired和Resource都可以
@Resource
private TestMapper testMapper;
@Override
public List findAll() {
return testMapper.findAll();
}
}
在controller下创建TestController.java文件
package com.kyw.controller;
import com.kyw.Service.TestService;
import com.kyw.entity.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/test")//这是Controller路径
public class TestController {
@Autowired
private TestService testService;
@RequestMapping("/findAll")//这是方法路径
public List findAll() {
return testService.findAll();
}
}
启动类,也是说引导类
在HelloApplication中加上这个注解
// 启动类扫描mapper层
@MapperScan("com.kyw.mapper")
点击启动类的按钮启动
进入浏览器
localhost:8081/test/findAll
查询成功!