Mybatis如何自动生成数据库表结构总结

Mybatis是一个优秀的ORM框架,除了提供了常见的ORM操作外,还可以通过它的Generator来实现数据库表结构的自动生成。

步骤一:配置GeneratorConfig.xml文件

在项目的Java包下创建config文件夹,并在其中新建一个GeneratorConfig.xml(文件名不一定要求)文件,用于配置自动生成的相关信息。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
      "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <context id="sqlServerTables" targetRuntime="MyBatis3">
        <!-- 配置数据库连接参数 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"
                        userId="root"
                        password="password"/>

        <!-- 配置生成的实体类的包名和存放位置 -->
        <javaModelGenerator targetPackage="com.example.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 配置生成对应表的Mapper接口和对应XML文件的包名和存放位置 -->
        <sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- 配置生成对应表的Dao接口和对应实现类的包名和存放位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 配置要生成的表信息 -->
        <table tableName="user"></table>
        <table tableName="role"></table>
    </context>
</generatorConfiguration>

步骤二:编写自动生成代码的maven插件

在项目的pom.xml文件中添加以下插件配置,以便在maven编译打包时能够自动生成对应的代码文件。

<build>
    <plugins>
        <!-- 配置Mybatis Generator插件 -->
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.4.0</version>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>${mysql.version}</version>
                </dependency>
            </dependencies>
            <configuration>
                <verbose>true</verbose>
                <overwrite>true</overwrite>
                <configurationFile>src/main/resources/config/GeneratorConfig.xml</configurationFile>
            </configuration>
        </plugin>
    </plugins>
</build>

步骤三:通过Mybatis Generator插件生成代码

在完成上述配置后,运行maven命令即可生成实体类和对应的XML以及Dao接口和实现类。

mvn mybatis-generator:generate

使用示例一:

以上是通过Maven插件运行的方式,还可以直接在IDE中打开Generator、右键运行即可。不过也并不建议这种方式。
使用示例二:

如果已经使用了Spring Boot,可以参考官方文档MyBatis With Spring Boot来进行配置。

这里只列出主要的配置,详情可以通过官方文档查询。

# application.yml
mybatis:
  mapper-locations: classpath*:mapper/*.xml   # 定义mapper.xml文件的路径
  configuration:
    map-underscore-to-camel-case: true        
    cache-enabled: true   # 是否开启缓存
    lazy-loading-enabled: true   # 是否启用延迟加载
  type-aliases-package: com.example.entity   # 实体类的包名
// MapperScan 注解表示扫描 Dao 接口所在的包路径
@MapperScan("com.example.dao")
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

至此,Mybatis如何自动生成数据库表结构的总结已经给出。需要注意的是,自动生成的代码只是一份基础代码,不一定能够适应所有的应用场景,需要开发人员进行适当的修改。

以上内容不一定全面详细,如果有疑问可以参考Mybatis Generator官方文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis如何自动生成数据库表结构总结 - Python技术站

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

相关文章

  • IntelliJ IDEA引入第三方jar包或查看Java源码的时候报decompiled.class file bytecode version:52.0(java 8)错误的解决办法

    当我们在使用 IntelliJ IDEA 引入第三方jar包或查看Java源码的时候,有时会出现以下错误提示信息: Error: java: decompiled.class file bytecode version:52.0 (java 8) 这是因为项目使用的Java版本与第三方jar包或源码使用的Java版本不一致导致的。要解决此问题,我们需要采取以…

    Java 2023年5月20日
    00
  • Java毕业设计实战之图片展览馆管理系统的实现

    Java毕业设计实战之图片展览馆管理系统的实现 项目简介 本项目是一个基于Java EE技术的图片展览馆管理系统,包含用户、管理员、图片展览馆、展览等多个模块。用户可以浏览展览馆内的图片展览,并参加感兴趣的展览活动,管理员可以管理展览馆信息和展览活动。 实现步骤 技术选型 本项目采用Java EE技术实现,具体使用的技术及框架如下: 前端:HTML、CSS、…

    Java 2023年5月24日
    00
  • JdbcTemplate操作数据库的具体方法

    JdbcTemplate 是 Spring 框架中提供的一种轻量级 JDBC 抽象框架,为了能够更方便快速地使用 JdbcTemplate 操作数据库,下面详细介绍 JdbcTemplate 操作数据库的具体方法。 1. 创建 JdbcTemplate 对象 我们可以在 Spring 的 XML 配置文件中声明 JdbcTemplate 对象并注入数据源,例…

    Java 2023年5月20日
    00
  • 在Java下利用log4j记录日志的方法

    以下是“在Java下利用log4j记录日志的方法”的完整攻略: 一、前置条件 在开始之前,我们需要确保已经完成以下操作: 已经安装了Java开发环境,推荐使用JDK 1.8及以上版本。 已经下载了log4j的相关 jar 包,可以从官网上下载或者使用Maven等构建工具导入相关依赖。 熟悉基本的Java编程知识,了解日志概念。 二、添加log4j相关依赖 在…

    Java 2023年5月26日
    00
  • 新欢乐时光代码分析

    下面为您详细讲解“新欢乐时光代码分析”的完整攻略。 新欢乐时光代码分析完整攻略 什么是新欢乐时光 新欢乐时光是一款在线编程学习网站,提供基于计算机科学和编程方面的在线培训课程。它的使命是通过免费、灵活、高质量的教育资源,为全球的学生和教育者带来变革性的教育体验。 在线代码分析工具使用教程 新欢乐时光提供了一款在线代码分析工具,允许用户输入自己的代码,然后自动…

    Java 2023年6月15日
    00
  • jsp Hibernate批量更新和批量删除处理代码

    下面我将为您详细讲解“jsp Hibernate批量更新和批量删除处理代码”的完整攻略。 什么是Hibernate? Hibernate是一个开源的面向关系型数据库的Java对象关系映射(ORM)框架,它将Java类与数据库表映射,将Java对象与数据库记录进行转换。使用Hibernate可以让我们像操作Java对象一样操作数据库,从而提高开发效率。 批量更…

    Java 2023年6月15日
    00
  • Java日常练习题,每天进步一点点(4)

    Java日常练习题每天进步一点点(4)的完整攻略如下: 1. 题目描述 本题共有两道小题: 题目1:设计一个验证码,验证码中包含字母和数字,并且验证码的长度为6位。 题目2:设计一个判断两个字符串是否可变换而成的函数,例如:输入字符串abc和bca,输出true。 2. 解题思路 题目1 设计验证码需要随机生成字母和数字,并且验证码的长度为6位。可以使用以下…

    Java 2023年5月20日
    00
  • Spring Security 和Apache Shiro你需要具备哪些条件

    Spring Security 和 Apache Shiro 都是 Java 应用程序中常用的安全框架,可以用来为应用程序提供身份验证、授权、密码管理、会话管理等安全功能。 要学习 Spring Security 和 Apache Shiro,你需要掌握以下基础条件: Java 编程基础:因为两个框架都是基于 Java 的,所以你需要掌握 Java 编程语言…

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