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下的委托机制代码详解

    先来了解一下反射和委托机制。 反射是Java语言的一种特性,它可以让我们在程序运行时动态地获取和操作类的信息。而委托机制则是一种实现面向对象编程的方法,它将任务的具体实现委托给其他对象来完成。在实际场景中,我们常常通过反射来动态地绑定委托关系,实现更加灵活和智能的程序设计。 下面就来详细讲解如何通过反射实现Java下的委托机制。 步骤一:定义一个接口 首先,…

    Java 2023年5月23日
    00
  • jQuery中使用each处理json数据

    当我们需要处理JSON数据时,使用jQuery的each方法可以快速轻松地遍历JSON数组或对象。下文将详细讲解如何使用jQuery的each方法处理JSON数据,以下是完整攻略的具体步骤: 1. 引入jQuery库 要使用jQuery的each方法,我们首先需要引入 jQuery 库。可以通过以下代码,从CDN服务器中引入最新版的jQuery: <s…

    Java 2023年5月26日
    00
  • 简单易懂的java8新特性之lambda表达式知识总结

    简单易懂的Java8新特性之Lambda表达式知识总结 Java8的Lambda表达式是一个非常强大的语言特性,它可以让Java代码更加简单、易读和易维护。本攻略将从以下几个方面详细讲解Java8中的Lambda表达式。 Lambda表达式是什么? Lambda表达式是一个匿名函数,它可以在不定义方法的情况下声明和使用。Lambda表达式通常用于Java中的…

    Java 2023年5月26日
    00
  • 编写线程安全的JSP程序

    编写线程安全的 JSP 程序需要注意以下几个方面: 避免使用 JavaBean、Session 和 Application 等共享对象作为局部变量。这些对象可能成为多个线程访问的共享资源,从而发生同步问题。 小心使用 JSP 默认的线程同步机制。JSP 的默认行为是重用已编译的页面实例,从而提高性能。但这会导致多个线程共享同一页面实例,如果在页面中使用了共享…

    Java 2023年6月15日
    00
  • mybatis plus实体类中字段映射mysql中的json格式方式

    下面是关于如何使用MybatisPlus实体类中字段映射MySQL中JSON格式的完整攻略。 1. 引入依赖 在pom.xml中加入以下依赖: <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter&l…

    Java 2023年5月26日
    00
  • MyBatis如何实现多表查询(多对一、一对多)

    MyBatis 是一种优秀的持久层框架,它提供了一种灵活方便的方式来处理多表操作。多表查询中最常见的场景是多对一和一对多关系。接下来我们详细讲解 MyBatis 如何实现这两种关系的多表查询。 多对一查询 多对一查询通常是一个表中的多条数据对应另一个表中的一条数据。在 MyBatis 中实现多对一查询的步骤如下: 步骤一:建立实体类 我们需要建立两张表的实体…

    Java 2023年5月20日
    00
  • java环境中的JDK、JVM、JRE详细介绍

    JDK、JVM、JRE介绍 在学习Java编程语言时,经常会听到JDK、JVM、JRE这几个概念。那么,这些概念的具体含义是什么呢? JDK(Java Development Kit):Java开发工具包。JDK是Java开发的核心组件,包含了Java编译器、Java运行环境、Java类库等一系列组件。 JRE(Java Runtime Environmen…

    Java 2023年5月24日
    00
  • zTree树形插件异步加载方法详解

    zTree树形插件异步加载方法详解 zTree是一款高效、简约、易于使用的树形结构插件,常用于网站后台权限管理、目录导航等场景。对于大量数据的情况,zTree支持异步加载,可以有效提升页面性能和用户体验。本文将详细介绍zTree树形插件的异步加载方法及其使用。 异步加载说明 异步加载是指在树形结构中仅在需要时才动态加载数据,而不是一次性加载树的所有数据。在效…

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