SpringBoot 整合mybatis、mybatis日志、并测试findAll查询数据库方法

一、创建SpringBoot项目

随便创建一个SpringBoot项目,能启动就行

建议看我的上一个文章

SpringBoot框架快速入门搭建Hello World

二、添加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

 查询成功!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值