mybatis plus 快速上手

Posted 章鱼樟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis plus 快速上手相关的知识,希望对你有一定的参考价值。

MyBatis-Plus 是一个 MyBatis 的增强工具;

先构建一个 spring boot 项目

1. 添加依赖

        <!-- 数据库 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1.tmp</version>
        </dependency>
        <!-- 数据库驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>
        <!-- 代码生成器 如不使用可以不加 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.1</version>
        </dependency>
        <!-- Druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.22</version>
        </dependency>
        <!-- 模板引擎 和代码生成器搭配使用,如不使用可以不加 -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>

2.配置

如果是 .yml 文件 ↓

spring:
  datasource: 
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource    # 数据源类型
    url: jdbc:h2:mem:test
    username: root
    password: test
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #日志

如果是 .properties文件 ↓

spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.type = com.alibaba.druid.pool.DruidDataSource
spring.datasource.url = jdbc:h2:mem:test
spring.datasource.username = root
spring.datasource.password = test
mybatis-plus.configuration.log-impl= org.apache.ibatis.logging.stdout.StdOutImpl #日志

更多 dataSource 配置 :https://www.cnblogs.com/toughzcf/p/9835867.html

在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication(scanBasePackages = {"com.example.*"})
public class DemoApplication {

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

}

 

3. 生成 @Data,mapper 文件(此处我是用代码生成器直接生成的

代码生成器代码↓

// 代码生成器
    @Test
    void generator() {
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
        globalConfig.setAuthor("author");         // 作者名
        globalConfig.setOpen(false);

        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setUrl(jdbcUrl);         // 数据库连接地址
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUsername("root");     // 数据库用户名
        dataSourceConfig.setPassword("3wHNY2Bq"); // 数据库密码

        //3、策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setCapitalMode(true)      // 开启全局大写命名
//                .setDbColumnUnderline(true)    // 表名字段名使用下划线
                .setNaming(NamingStrategy.underline_to_camel)//下划线转驼峰的命名方式
                .setTablePrefix("xxxx_")         // 表名前缀
                .setEntityLombokModel(true)      // 使用lombok
                .setInclude("xxxx_sms");         // 逆向工程使用的表
        //4、包名策略配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig
                .setParent("com.example.demo")  // 设置包名的parent
                .setMapper("dao.xxxx")
//                .setService("service")        // service 文件目录
//                .setController("controller")  // controller 文件目录
                .setEntity("entity.xxxx")       // data文件目录
                .setXml("mapper/xxxx");         // 设置xml文件的目录  (暂没有找到xml文件直接存到 resource 目录下的方法,由于resource目录和java目录同级)

        // 配置模板
        TemplateConfig templateConfig = new TemplateConfig();
        //控制 不生成 controller,server,impl 文件
        templateConfig.setController("").setService("").setServiceImpl("");

        AutoGenerator autoGenerator = new AutoGenerator();
        autoGenerator.setGlobalConfig(globalConfig)
                .setDataSource(dataSourceConfig)
                .setStrategy(strategyConfig)
                .setPackageInfo(packageConfig)
                .setTemplate(templateConfig);

        //6、执行
        autoGenerator.execute();
    }

4. 现在就可以直接使用增删改查了

@Service
public class HomeImpl implements HomeService {
    @Autowired
    private SmsMapper smsMapper;

    @Override
    public List sms(String phone) {
        QueryWrapper<Sms> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("phone", phone);
        return smsMapper.selectList(queryWrapper);
    }
}

 

以上是关于mybatis plus 快速上手的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis-Plus01 快速上手

MyBatis­Plus快速入门源码笔记共享,拿走吧你

优雅高效的MyBatis-Plus工具快速入门使用

mybatis-plus学习笔记

SpringBoot+Mybati-Plus实现代码快速搭建

Mybatis-Plus:代码生成器(通过 AutoGenerator快速生成 EntityMapperXMLServiceController代码)MybatisX 快速开发插件