MyBatis-plus+达梦数据库实现自动生成代码的示例

接下来我将详细讲解如何使用MyBatis-plus和达梦数据库实现自动生成代码的步骤和注意事项。

环境准备

  1. JDK 1.8及以上版本
  2. Maven 3.5及以上版本
  3. Spring Boot 2.x及以上版本
  4. MyBatis-plus 3.x及以上版本
  5. 达梦数据库 JDBC 驱动程序

步骤一:添加依赖

首先,在使用 MyBatis-plus 时,需要添加相应的依赖。在 pom.xml 文件中添加以下代码:

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

<dependency>
    <groupId>dm.jdbc</groupId>
    <artifactId>dm7jdbc</artifactId>
    <version>7.1.5_jre7</version>
</dependency>

步骤二:配置 MyBatis-plus

然后,需要对 MyBatis-plus 进行配置。在 application.yml 文件中,添加以下代码:

mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
  global-config:
    db-config:
      logic-delete-value: 1
      logic-not-delete-value: 0
  configuration:
    map-underscore-to-camel-case: true

其中,mapper-locations 指定了 mapper 文件的位置,global-config 配置全局的参数,configuration 则是 MyBatis-plus 的其他配置。

步骤三:生成代码

接下来,可以使用 MyBatis-plus 提供的代码生成器,快速生成代码。在 pom.xml 文件中添加以下代码:

<build>
    <plugins>
        <plugin>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.2.0</version>
        </plugin>
    </plugins>
</build>

然后,在 src/main/java 目录下,新建一个名为CodeGenerator 的类,添加以下代码:

public class CodeGenerator {

    public static void main(String[] args) {
        // 数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.DM);
        dataSourceConfig.setDriverName("dm.jdbc.driver.DmDriver");
        dataSourceConfig.setUsername("test");
        dataSourceConfig.setPassword("test123456");
        dataSourceConfig.setUrl("jdbc:dm://192.168.1.10:5236/TEST?serverTimezone=GMT%2B8");

        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir("src/main/java");
        globalConfig.setFileOverride(true);
        globalConfig.setBaseResultMap(true);
        globalConfig.setBaseColumnList(true);
        globalConfig.setAuthor("yourname");

        // 代码生成器
        AutoGenerator autoGenerator = new AutoGenerator();
        autoGenerator.setGlobalConfig(globalConfig);
        autoGenerator.setDataSource(dataSourceConfig);

        // 包配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.example.demo");
        packageConfig.setEntity("model");

        // 策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
        autoGenerator.setPackageInfo(packageConfig);
        List<TableFill> tableFills = new ArrayList<>();
        tableFills.add(new TableFill("create_time", FieldFill.INSERT));
        tableFills.add(new TableFill("update_time", FieldFill.INSERT_UPDATE));
        strategyConfig.setEntityTableFieldAnnotationEnable(true);
        strategyConfig.setTableFillList(tableFills);
        autoGenerator.setStrategy(strategyConfig);
        autoGenerator.execute();
    }

}

在上面的代码中,首先需要设置数据源的信息。然后,全局配置指定了代码生成的输出目录、是否覆盖已有文件、是否生成 BaseResultMap 和 BaseColumnList 以及生成的作者。最后,设置包和策略配置。执行 main 方法,即可生成代码。

示例一:用户表

以用户表为例,该表的结构如下:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(50) DEFAULT NULL COMMENT '用户名',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `deleted` tinyint(4) DEFAULT '0' COMMENT '删除标记',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

执行代码生成后,就可以得到以下文件:

  1. User.java 实体类
  2. UserMapper.java Mapper 接口
  3. UserMapper.xml Mapper XML 文件
  4. UserService.java Service 层接口
  5. UserServiceImpl.java Service 层实现类

示例二:文章表

再以文章表为例,该表的结构如下:

CREATE TABLE `article` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `title` varchar(255) DEFAULT NULL COMMENT '标题',
  `content` text COMMENT '内容',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `deleted` tinyint(4) DEFAULT '0' COMMENT '删除标记',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文章表';

执行代码生成后,得到的文件与上面的示例是类似的。

综上所述,使用 MyBatis-plus 和达梦数据库实现自动生成代码,可以大大减少人为的代码编写量,提高开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis-plus+达梦数据库实现自动生成代码的示例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java学生信息管理系统设计(2)

    Java学生信息管理系统设计(2)攻略 在这个学生信息管理系统设计中,我们需要实现一个基于Java的学生信息管理系统,包括如下功能模块: 学生信息录入 学生信息查询 学生信息删除 学生信息修改 学生信息录入 学生信息录入主要包括学生的基本信息,例如学号、姓名、性别、年龄、出生日期、家庭住址等等。 在实现学生信息录入的过程中,我们需要设计对应的数据模型,并使用…

    Java 2023年6月15日
    00
  • 浅谈JAVA 类加载器

    浅谈JAVA 类加载器 在JAVA中,类加载器是一个非常重要且复杂的概念,掌握好它的使用方法能够使我们更好地理解Java程序的整体运行机制。本文将从以下几个方面进行详细讲解: 类加载器的作用及类型 类加载器的实现原理 自定义类加载器 示例1:使用URLClassLoader动态加载class文件 示例2:使用自定义类加载器加载class文件 1. 类加载器的…

    Java 2023年6月15日
    00
  • java编程的30个建议

    “Java编程的30个建议”攻略 简介 “Java编程的30个建议”是一本由石凡等人撰写的关于Java编程的指南书籍。该书籍通过30个不同的示例,介绍了Java编程中的一些基本原则和技巧。本攻略将会对该书籍的内容进行详细解读和说明。 建议1:理解Java堆栈模型 Java堆栈模型是整个Java程序的基础架构。程序中的所有变量、对象都被保存在堆和栈中。灵活的使…

    Java 2023年5月30日
    00
  • kafka消费者kafka-console-consumer接收不到数据的解决

    当使用kafka-console-consumer消费Kafka数据时,有时候会出现无法接收数据的情况。这个问题可以出现在多个方面,比如主题不存在、消费者组号错误、网络故障等等。下面是解决这个问题的完整攻略: 1. 主题不存在 首先,确认一下你的topic是否存在。你可以使用下面的命令列出当前所有的主题: kafka-topics –zookeeper l…

    Java 2023年5月20日
    00
  • SpringBoot 使用@WebMvcTest测试MVC Web Controller

    SpringBoot 使用 @WebMvcTest 测试 MVC Web Controller 在 SpringBoot 中,我们可以使用 @WebMvcTest 注解来测试 MVC Web Controller。@WebMvcTest 注解提供了一种简单的方式来测试 Spring MVC 控制器,而不需要启动完整的应用程序上下文。本文将详细讲解 Sprin…

    Java 2023年5月18日
    00
  • Sprint Boot @JsonIgnore使用方法详解

    @JsonIgnore是Spring Boot中的一个注解,用于标记某个字段或方法不参与序列化或反序列化。在本文中,我们将详细介绍@JsonIgnore注解的作用和使用方法,并提供两个示例。 @JsonIgnore注解的作用 @JsonIgnore注解用于标记某个字段或方法不参与序列化或反序列化。当使用@JsonIgnore注解标记某个字段或方法时,该字段或…

    Java 2023年5月5日
    00
  • java中lambda表达式的分析与具体用法

    以下是“Java中Lambda表达式的分析与具体用法”的完整攻略: Lambda表达式是什么? Lambda表达式是一种新的语法结构,可以被认为是匿名函数的一种形式。它允许我们定义一个函数体,然后把这个函数体传递到方法中作为参数。Lambda表达式的实现背后是靠了一种叫做 “函数式接口”的概念,这个接口只有一个抽象方法,所以这个接口的实例需要通过Lambda…

    Java 2023年5月26日
    00
  • 浅谈SpringBoot内嵌Tomcat的实现原理解析

    浅谈SpringBoot内嵌Tomcat的实现原理解析 简介 SpringBoot是一个用于快速构建应用程序的框架,它使用内嵌的Tomcat作为默认的Web容器。那么,SpringBoot内嵌Tomcat的实现原理是什么呢?本文旨在解析SpringBoot内嵌Tomcat的实现原理,帮助您更好地了解SpringBoot的底层实现。 SpringBoot内嵌T…

    Java 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部