当前位置: 代码网 > it编程>编程语言>Java > springboot3.0整合mybatis-flex实现逆向工程的示例代码

springboot3.0整合mybatis-flex实现逆向工程的示例代码

2024年07月05日 Java 我要评论
什么是mybatis逆向工程?mybatis需要程序员编写sql语句。mybatis官网提供了逆向工程,针对对于单表可自动生成mybatis所要执行的代码(mapper.java、mapper.xml

什么是mybatis逆向工程?

mybatis需要程序员编写sql语句。mybatis官网提供了逆向工程,针对对于单表可自动生成mybatis所要执行的代码(mapper.java、mapper.xml、pojo…)

实际开发中常用的逆向工程方式:

由数据库的表生成代码,之所以强调“单表”两个字,是因为mybatis逆向工程生成的mapper接口所进行的操作都是针对单表的。

引入基本依赖

<dependency>
   <groupid>com.zaxxer</groupid>
   <artifactid>hikaricp</artifactid>
   <version>5.0.1</version>
</dependency>

<dependency>
   <groupid>com.mybatis-flex</groupid>
   <artifactid>mybatis-flex-spring-boot-starter</artifactid>
   <version>1.5.3</version>
</dependency>

<dependency>
   <groupid>com.mybatis-flex</groupid>
   <artifactid>mybatis-flex-codegen</artifactid>
   <version>1.5.3</version>
</dependency>

mybatis-flex yml配置

mybatis-flex:
  # 启动时检查是否存在 mybatis xml 文件,默认不检查
  check-config-location: false
  # 是否控制台打印 mybatis-flex 的 logo 及版本号
  global-config:
    print-banner: true
    normal-value-of-logic-delete: 0
    deleted-value-of-logic-delete: 1

生成器,修改为自己的配置即可

package gen;

import com.mybatisflex.codegen.generator;
import com.mybatisflex.codegen.config.globalconfig;
import com.zaxxer.hikari.hikaridatasource;
import org.junit.test;

/**
 * @author 程序员星星
 * @date 2023/7/27
 * @description
 */
public class codegen {
    //数据库名和模块名(这里数据库名和模块名一样)
    private static final string databasename = "five_cube_test";
    //主机 ip
    private static final string host = "192.168.157.129";
    //数据库用户名
    private static final string username = "root";
    //数据库密码
    private static final string password = "root";
    //生成代码的路径
    private static final string path = "d:\\myproject\\my\\test_mybatis_flex";
    //表名
    private static final string tablename = "user";
    //作者
    private static final string author = "lzx";
    //父包模块名
    private static final string modulename = "mybatisflex";
    //逻辑删除字段
    private static final string logicdeletecolumn = "status";
    //乐观锁字段
    private static final string versioncolumn = "version";

    @test
    public void gencode() {
        //配置数据源
        hikaridatasource datasource = new hikaridatasource();
        datasource.setjdbcurl("jdbc:mysql://" + host + ":3306/" + databasename + "?characterencoding=utf-8");
        datasource.setusername(username);
        datasource.setpassword(password);
        //创建配置内容,两种风格都可以。
        globalconfig globalconfig = createglobalconfigusestyle2();
        //通过 datasource 和 globalconfig 创建代码生成器
        generator generator = new generator(datasource, globalconfig);
        //生成代码
        generator.generate();
    }

    public static globalconfig createglobalconfigusestyle2() {
        //创建配置内容
        globalconfig globalconfig = new globalconfig();
        //设置根包
        globalconfig.getpackageconfig()
                .setsourcedir(path + "/src/main/java")
                .setbasepackage("com." + author + "." + modulename)
                .setmapperxmlpath(path + "/src/main/java/com/" + author + "/" + modulename + "/mapper/xml");
        globalconfig.getjavadocconfig()
                .setauthor(author);
        //设置表前缀和只生成哪些表,setgeneratetable 未配置时,生成所有表
        globalconfig.getstrategyconfig()
//                .settableprefix("tb_")
                .setlogicdeletecolumn(logicdeletecolumn)
                .setversioncolumn(versioncolumn)
                .setgeneratetable(tablename);//生成多个表的写法"sys_user","sys_dept"
        //设置生成 entity 并启用 lombok
        globalconfig.enableentity()
                .setwithlombok(true);
        //设置生成 mapper
        globalconfig.enablemapper();
        //设置生成 mapper.xml
        globalconfig.enablemapperxml();
        //设置生成service
        globalconfig.enableservice();
        globalconfig.enableserviceimpl();
        //设置生成controller
        globalconfig.enablecontroller();
        //设置生成tabledef
        globalconfig.enabletabledef();
        return globalconfig;
    }
}

config配置类(可选)

package com.lzx.mybatisflex.config;

import com.mybatisflex.core.flexglobalconfig;
import com.mybatisflex.core.audit.auditmanager;
import com.mybatisflex.core.audit.consolemessagecollector;
import com.mybatisflex.core.audit.messagecollector;
import com.mybatisflex.spring.boot.mybatisflexcustomizer;
import org.slf4j.logger;
import org.slf4j.loggerfactory;
import org.springframework.context.annotation.configuration;

/**
 * @author 程序员星星
 * @date 2023/6/8
 * @description
 */
@configuration
public class mybatisflexconfiguration implements mybatisflexcustomizer {
    private static final logger logger = loggerfactory.getlogger("mybatis-flex-sql");

    @override
    public void customize(flexglobalconfig flexglobalconfig) {
        //开启审计功能
        auditmanager.setauditenable(true);
        //设置 sql 审计收集器
        messagecollector collector = new consolemessagecollector();
        auditmanager.setmessagecollector(collector);
        //设置 sql 审计收集器
        auditmanager.setmessagecollector(auditmessage ->
                logger.info("{},{}ms", auditmessage.getfullsql(), auditmessage.getelapsedtime())
        );
    }
}

到此这篇关于springboot3.0整合mybatis-flex实现逆向工程的示例代码的文章就介绍到这了,更多相关springboot mybatis-flex逆向工程内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com