MyBatis-Plus(快速使用轮子)

前言:

        基于SpringBoot项目快速实现MySql数据库的增删改查。

一、Maven依赖导入

<!--        数据库连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>

<!--        mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>

二、配置yml文件

server:
  port: 8080
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&useSSL=false
    username: root
    password: root

        需要注意的按mysql版本填写 driver-class-name nysql版本高于3.6 需要在驱动中添加cj字样。

三、添加表、实体

CREATE TABLE `user` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '姓名',
  `age` int DEFAULT NULL COMMENT '年龄',
  `email` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

         @Data注解是Lombok,需要额外添加依赖及插件

        @TableId 是mybatis自带注解。什么主键自增方式。根据自己MySQL中拟定的来。

四、轮子开滚

        1、创建对应实体Mapper接口

public interface UserMapper extends BaseMapper<User> {
}

        继承mybatis包中的BaseMapper类,泛型是对应数据表的实体类。

        2、创建对应实体service与serviceImpl类。

service接口:

public interface IUserService extends IService<User> {
}

        继承MyBatis包中的IService类,泛型是对应数据表的实体类。

serviceImpl实现类:

@Service
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {

}

        @Service注解:spring自动装配至容器。一定不要忘记添加。

        @Slf4j注解:Lombok依赖中带入的,方便我们业务代码中的日志输出。

用法如下:

public String userGet(String userId){
        // {} 为占位符类似。可多个使用
        log.info("本次查询用户ID为:{}",userId);
        return faceFacade.userGet(groupId);
    }

           3、添加启动类注解

@SpringBootApplication
@MapperScan("org.java.demo.springbootdemo.mapper")
public class SpringBootDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemoApplication.class, args);
    }

}

        @MapperScan("xxxx") 对应的就是自己mapper文件所在包的全路径。

        4、编写Controller层使用轮子。

package org.java.demo.springbootdemo.controller;

import org.java.demo.springbootdemo.entity.User;
import org.java.demo.springbootdemo.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController  //@ResponseBody + @Controller 无需再每个方法上添加了
@RequestMapping("/mybatis") //请求前缀,区分、快速寻找controller
public class MyBatisDemoController {

    //自动注入service
    @Autowired
    private IUserService userService;

    /**
     * 新增数据至User表
     * @param user user实体
     * @return
     */
    @PostMapping("/addUser")
    public String addUser(@RequestBody User user){
        boolean save = userService.save(user);
        if (save) {
            return "SUCCESS!";
        } else {
            return "FAIL!";
        }
    }
}

         这样一个简单的保存实体至数据表就完成了。

Mybatis自带的service就携带了简单的CRUD操作。

        至于连表查询等。则还是需要去编写Mapper.xml方法实现。

猜你喜欢

转载自blog.csdn.net/m0_58907154/article/details/129691280