springboot中如何使用tk.mybatis代码生成器

发布时间:2021-07-16 10:39:12 作者:chen
来源:亿速云 阅读:498
# SpringBoot中如何使用tk.mybatis代码生成器

## 一、tk.mybatis简介

tk.mybatis是一个基于MyBatis的轻量级通用Mapper框架,它通过提供通用Mapper接口和代码生成器,可以大幅减少MyBatis开发中的重复代码。其中代码生成器模块能够根据数据库表结构自动生成:
- 实体类(Entity)
- Mapper接口
- XML映射文件

## 二、环境准备

### 1. 添加依赖
在SpringBoot项目的`pom.xml`中添加以下依赖:

```xml
<!-- tk.mybatis核心包 -->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>2.1.5</version>
</dependency>

<!-- 代码生成器 -->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-generator</artifactId>
    <version>1.1.5</version>
    <scope>provided</scope>
</dependency>

<!-- 模板引擎 -->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.31</version>
</dependency>

2. 数据库配置

确保application.yml中已配置数据源:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_db?useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

三、代码生成器配置

1. 创建Generator配置类

test目录下新建GeneratorRunner.java

public class GeneratorRunner {
    public static void main(String[] args) {
        // 代码生成器配置
        AutoGenerator generator = new AutoGenerator();
        
        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
        gc.setAuthor("YourName");
        gc.setOpen(false);
        generator.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/your_db");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
        generator.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.example.demo");
        pc.setEntity("entity");
        pc.setMapper("mapper");
        generator.setPackageInfo(pc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setEntityLombokModel(true);
        strategy.setInclude("user", "order"); // 需要生成的表名
        generator.setStrategy(strategy);

        generator.execute();
    }
}

2. 关键配置说明

配置项 说明
setOutputDir 指定生成文件的输出目录
setInclude 指定需要生成的表(支持多表,用逗号分隔)
setEntityLombokModel 是否使用Lombok注解(推荐true)
setNaming 数据库字段到实体属性的命名策略(推荐下划线转驼峰)

四、运行生成器

  1. 右键运行GeneratorRunner.main()方法
  2. 控制台出现生成成功提示后,检查目标目录:
    
    src/main/java
    └── com
       └── example
           └── demo
               ├── entity  # 实体类
               ├── mapper # Mapper接口
               └── xml    # XML映射文件
    

五、生成后使用

  1. 在启动类添加Mapper扫描注解:
@MapperScan("com.example.demo.mapper")
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
  1. 在Service中注入Mapper:
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    
    public User getById(Long id) {
        return userMapper.selectByPrimaryKey(id);
    }
}

六、注意事项

  1. 表必须有主键:tk.mybatis要求每个表必须定义主键
  2. 字段命名规范:建议使用下划线命名法(如:user_name)
  3. 生成前备份:重复生成会覆盖已有文件
  4. 自定义模板:可通过修改src/main/resources/generator下的.ftl文件定制生成模板

七、总结

通过tk.mybatis代码生成器,我们可以在SpringBoot项目中快速生成基础CRUD代码,将开发效率提升50%以上。相比传统MyBatis开发方式,减少了大量重复工作,让开发者更专注于业务逻辑实现。 “`

推荐阅读:
  1. tk.mybatis扩展通用接口使用详解
  2. springboot中如何使用redis

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

maven

上一篇:JS如何实现验证密码不能为空、必须含有数字、字母、特殊字符、长度在8-12位的功能

下一篇:Web开发中客户端跳转与服务器端跳转有什么区别

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》