一、创建SpringBoot项目
随便创建一个SpringBoot项目,能启动就行
建议看我的上一个文章
二、添加mybatis依赖并配置
在pom.xml中添加下面的依赖,点击刷新maven
注意:要添加到<dependencies>的标签内部
<!--整合mybatis和mysql-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
在application.yaml中添加下面代码
如果没有这个文件,就去看上一节SpringBoot基础
注意yaml格式严谨,每个缩进都不能改
修改成自己的数据库名称、用户名、密码
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/springboot?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层路径
logging.level.com.kyw.mapper: debug #mybatis配置日志文件,选择自己的mapper层路径
三、配置mybatis日志和lombok插件
在yaml配置文件中配置
在application.yaml中添加下面代码
如果没有这个文件,就去看上一节SpringBoot基础
注意yaml格式严谨,每个缩进都不能改
顶格添加下面的代码
注意修改成自己mapper层的路径:com.kyw.mapper
logging.level.com.kyw.mapper: debug #mybatis配置日志文件,选择自己的mapper层路径
说明
debug 是日志层级
日志的级别:
FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试)
从左到右打印的内容越来越详细
配置上lombok
这是干嘛的???
lombok是方便我们操作实体类的工具,有了它我们就不需要手动添加 get,set,toString方法了,在类上加一个@Data 注解就OK了。
下面代码加到pom.xml的dependencies标签内部,再刷新maven就行了
<!--整合lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
四、创建数据库
可以自己创建一个,也可以跟着我来
下面数据库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下创建实体类
这里对应数据库里面的字段
package com.kyw.entity;
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private int age;
}
在com.kyw下创建mapper文件夹,在mapper下创建接口文件
package com.kyw.mapper;
import com.kyw.entity.User;
import java.util.List;
public interface UserMapper {
//findAll方法
List<User> findAll();
}
在resources下创建mapper文件夹,并创建xml文件
<?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层(dao)层下的文件-->
<!--如果按住ctrl键能点击就说明写对了-->
<mapper namespace="com.kyw.mapper.UserMapper">
<!-- type里面选择entity层下面的文件-->
<!--如果按住ctrl键能点击就说明写对了-->
<resultMap id="BaseResultMap" type="com.kyw.entity.User">
<!--这里对应数据库字段,和字段的类型-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="age" jdbcType="BIGINT" property="age" />
</resultMap>
<!--公用的数据库字段-->
<sql id="Base_Column_List">
id,name,age
</sql>
<!--findAll方法-->
<select id="findAll" resultType="com.kyw.entity.User">
select * from user
</select>
</mapper>
在com.kyw里面创建service文件夹,在service里面创建接口文件
package com.kyw.service;
import com.kyw.entity.User;
import java.util.List;
public interface UserService {
List<User> findAll();
}
在service文件夹里面创建impl文件夹,在impl里面创建TestServiceImpl的类文件
并加上@service注解和实现TestService接口,并继承上面的接口
package com.kyw.service.impl;
import com.kyw.entity.User;
import com.kyw.mapper.UserMapper;
import com.kyw.service.UserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
// @Autowired Autowired和Resource都可以
@Resource
private UserMapper userMapper;
@Override
public List<User> findAll() {
return userMapper.findAll();
}
}
在controller下创建TestController.java文件
package com.kyw.controller;
import com.kyw.entity.User;
import com.kyw.service.UserService;
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("/user")//这是Controller路径
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/findAll")//这是方法路径
public List<User> findAll() {
return userService.findAll();
}
}
六、配制mybatis并加上启动类扫描
注意下图的配置
启动类加上扫描
启动类,也是说引导类
在StartApplication中加上这个注解
// 启动类扫描mapper层
@MapperScan("com.kyw.mapper")
七、大功告成,run
点击启动类的按钮启动
进入浏览器
http://localhost:8081/user/findAll
查询成功!