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日

相关文章

  • java二维数组基础知识详解

    Java二维数组基础知识详解 什么是Java二维数组? Java二维数组是一种特殊的数组类型,它是由多个一维数组组成的,通常用于表示矩阵和表格等情景。Java二维数组的每个元素都是一个数组,这个数组里面又包含了多个元素。 Java二维数组的定义与初始化 Java二维数组的定义格式为 数据类型[][] 数组名 = new 数据类型[行数][列数]。其中,行数和…

    Java 2023年5月26日
    00
  • JDBC程序更新数据库中记录的方法

    下面是JDBC程序更新数据库中记录的方法的完整攻略。 更新数据 在JDBC程序中,更新数据使用UPDATE语句,具体步骤如下: 加载JDBC驱动程序 建立数据库连接 创建Statement对象或PreparedStatement对象 准备SQL语句 执行SQL语句 关闭数据库连接 下面是代码示例: // 加载JDBC驱动程序 Class.forName(&q…

    Java 2023年5月19日
    00
  • 详解SpringBoot初始教程之Tomcat、Https配置以及Jetty优化

    详解SpringBoot初始教程之Tomcat、Https配置以及Jetty优化 Tomcat配置 1.引入Tomcat依赖 在项目的pom.xml文件中引入以下Tomcat依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId…

    Java 2023年5月19日
    00
  • Spring Security 多过滤链的使用详解

    下面我来详细讲解“Spring Security 多过滤链的使用详解”的完整攻略。 什么是多过滤链? Spring Security 多过滤链是指在同一个应用程序中为不同的 URL 模式定义不同的过滤器链。这样做的目的是为了更好的控制应用程序的安全访问权限,从而满足不同的安全要求。比如,一些 URL 需要进行用户认证和授权,而另一些 URL 只需要进行简单的…

    Java 2023年5月20日
    00
  • spring mvc4的日期/数字格式化、枚举转换示例

    下面是关于“Spring MVC4的日期/数字格式化、枚举转换示例”的完整攻略,包含两个示例说明。 Spring MVC4的日期/数字格式化、枚举转换示例 Spring MVC4提供了强大的数据绑定和类型转换功能,可以自动将HTTP请求参数转换为Java对象,并将Java对象转换为HTTP响应。下面我们将详细介绍Spring MVC4的日期/数字格式化和枚举…

    Java 2023年5月17日
    00
  • 如何在IDEA中快速解决Jar冲突详解

    下面是“如何在IDEA中快速解决Jar冲突”的完整攻略。 1. 什么是Jar冲突 在Java项目中,我们通常使用Jar包来管理和引入第三方库。但是同一个项目可能会引入多个Jar包,这些Jar包存在相同类名或不兼容的情况,就会发生Jar冲突。 当出现Jar冲突时,就会导致编译或运行时出现各种异常,从而影响项目正常运行。 2. 解决Jar冲突的方法 通常有三种方…

    Java 2023年5月20日
    00
  • Java中的这些骚操作你不能不知道!!!

    Java中的这些骚操作你不能不知道!!! 本篇文章将为你介绍Java中的一些高级操作和技巧,帮助你更好地理解和使用Java。 1. 位操作符 Java提供了许多位操作符,如左移运算符(<<)、右移运算符(>>)和按位与运算符(&)等。这些运算符可以帮助我们对二进制数做一些处理,使程序更加高效。 例如,我们可以使用左移运算符来快…

    Java 2023年5月30日
    00
  • 如何使用Java操作Zookeeper

    如何使用Java操作Zookeeper 1. 前言 Zookeeper是一个分布式应用程序协调服务,可以用作分布式系统中的协调服务,它是分布式系统中非常重要的一部分,许多的大型分布式系统都会使用Zookeeper作为协调服务。 在Java中操作Zookeeper可以使用ZooKeeper Java API,本文将介绍如何使用Java操作Zookeeper,并…

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