返回

MyBatis Plus 演示代码 - 简化数据访问与代码生成

后端

MyBatis Plus 简介

MyBatis Plus 是一个 MyBatis 的增强工具,可以极大地简化 MyBatis 的使用。它提供了一些开箱即用的功能,例如:

  • 代码生成:MyBatis Plus 可以自动生成实体类、仓库、服务和控制器等代码,大大提高了开发效率。
  • CRUD 操作:MyBatis Plus 提供了简洁的 CRUD 操作 API,可以让你轻松地对数据库进行增删改查操作。
  • 关联查询:MyBatis Plus 支持关联查询,可以让你方便地查询出实体类之间的关系数据。
  • 分页查询:MyBatis Plus 支持分页查询,可以让你方便地对数据进行分页显示。
  • 事务管理:MyBatis Plus 支持事务管理,可以让你方便地对数据进行事务控制。

MyBatis Plus 演示代码

为了演示 MyBatis Plus 的使用方法,我们创建一个简单的 Spring Boot 项目。

1. 准备工作

首先,我们需要准备一个数据库。这里,我们使用 MySQL 数据库。

2. 添加 Maven 依赖

在项目的 pom.xml 文件中,添加以下 Maven 依赖:

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

3. 创建实体类

接下来,我们需要创建实体类。实体类对应于数据库中的表。这里,我们创建一个 User 实体类:

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("user")
public class User {

    @TableId(type = IdType.AUTO)
    private Long id;

    private String name;

    private Integer age;

}

4. 创建仓库

仓库负责对数据库进行操作。这里,我们创建一个 UserRepository 仓库:

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserRepository extends BaseMapper<User> {

}

5. 创建服务

服务负责对仓库进行调用,并提供业务逻辑。这里,我们创建一个 UserService 服务:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public List<User> list() {
        return userRepository.selectList(null);
    }

}

6. 创建控制器

控制器负责处理 HTTP 请求,并调用服务。这里,我们创建一个 UserController 控制器:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/list")
    public List<User> list() {
        return userService.list();
    }

}

7. 运行项目

最后,我们可以运行项目了。在项目根目录下,运行以下命令:

mvn spring-boot:run

项目启动后,我们可以通过浏览器访问 http://localhost:8080/user/list 来查看所有用户。

MyBatis Plus 代码生成

MyBatis Plus 可以自动生成实体类、仓库、服务和控制器等代码。这可以大大提高我们的开发效率。

1. 添加代码生成器依赖

在项目的 pom.xml 文件中,添加以下代码生成器依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.2</version>
</dependency>

2. 创建代码生成器配置类

接下来,我们需要创建一个代码生成器配置类。这里,我们创建一个 GeneratorConfig 类:

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

@Configuration
public class GeneratorConfig {

    @Value("${spring.datasource.url}")
    private String url;

    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String password;

    @Value("${spring.datasource.driver-class-name}")
    private String driverName;

    public void generateCode() {
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("Your Name");
        gc.setOpen(false);
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl(url);
        dsc.setDriverName(driverName);
        dsc.setUsername(username);
        dsc.setPassword(password);
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName("demo");
        pc.setParent("com.example");
        mpg.setPackageInfo(pc);

        // 模板配置
        TemplateConfig templateConfig = new TemplateConfig();
        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setEntityLombokModel(true);
        strategy.setInclude("user");
        strategy.setControllerMappingHyphenStyle(true);
        strategy.setTablePrefix(pc.getModuleName() + "_");
        mpg.setStrategy(strategy);

        mpg.execute();
    }

}

3. 运行代码生成器

最后,我们可以运行代码生成器了。在项目根目录下,运行以下命令:

mvn generate-sources

代码生成器会自动生成实体类、仓库、服务和控制器等代码。这些代码位于 src/main/java 目录下。

总结

MyBatis Plus 是一个非常强大的 ORM 框架,可以极大地简化数据访问和代码生成。在本文中,我们演示了如何使用 MyBatis Plus 来简化数据访问和代码生成。我们还介绍了如何使用 MyBatis Plus 的代码生成器来自动生成实体类、仓库、服务和控制器等代码。