沃梦达 / IT编程 / 数据库 / 正文

Java的MyBatis框架中MyBatis Generator代码生成器的用法

下面是Java的MyBatis框架中MyBatis Generator代码生成器的用法的完整攻略。

下面是Java的MyBatis框架中MyBatis Generator代码生成器的用法的完整攻略。

什么是MyBatis Generator?

MyBatis Generator是一个可以基于MyBatis框架自动生成Java持久层代码的工具,可以快速地创建对数据库表的增、删、改、查的操作类、POJO类及其映射映射文件等,简化了持久层代码的编写工作。

MyBatis Generator的使用步骤

1. 安装MyBatis Generator

MyBatis Generator是一个支持命令行和Eclipse插件的工具,它可以通过Maven或在Mybatis官网上手动下载。

下载完压缩包后进行解压,进入解压后的文件夹,即可看到如下两个文件:

├── lib
├── mybatis-generator-core-1.4.0.jar
└── mybatis-generator-core-1.4.0.pom

2. 创建配置文件

在使用MyBatis Generator之前,需要创建一个MyBatis Generator的配置文件,用于指定一些参数。

配置文件的格式为xml,部分参数说明:

  • jdbcConnection: 数据库链接参数配置,需要配置driverClass、connectionURL、userId、password 4个属性。
  • targetPackage: Java文件输出目录的包名,值为Java的包名格式,例如com.example.dao。
  • targetProject: Java文件输出目录,可以是相对路径,也可以是绝对路径。注意,建议使用相对路径,这样便于管理项目代码。

下面是一个配置文件的例子:

<?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="DbTable" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/demo"
        userId="root"
        password="123456"/>

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

    <!-- 配置生成的mapping.xml的包和位置 -->
    <sqlMapGenerator targetPackage="com.example.dao.mapper"  targetProject="src/main/resources">
        <property name="enableSubPackages" value="true"/>
    </sqlMapGenerator>

    <!-- 配置生成的Dao接口的包和位置 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.dao.mapper"  targetProject="src/main/java">
        <property name="enableSubPackages" value="true"/>
    </javaClientGenerator>

    <!-- 配置生成的表名和类名的映射信息 -->
    <table tableName="user" domainObjectName="User" />

  </context>
</generatorConfiguration>

3. 运行MyBatis Generator

在创建好配置文件后,我们就可以运行MyBatis Generator来生成Java POJO类和相关的映射文件了。

运行方式一:使用maven插件:

mvn mybatis-generator:generate

运行方式二:使用java运行jar包:

java -jar mybatis-generator-core-1.4.0.jar -configfile generator.xml

4. 查看生成的文件

运行完成后,我们可以在配置文件targetProject指定的目录下看到生成的Java POJO类和对应的映射文件以及对应的Dao接口文件等。

例如,针对上述配置文件中生成User相关的文件的输出路径是:demo\src\main\java\com\example\dao\po\User.java、demo\src\main\resources\com\example\dao\mapper\UserMapper.xml 和 demo\src\main\java\com\example\dao\mapper\UserMapper.java。

MyBatis Generator 示例

下面我们用一个实际的例子来讲解MyBatis Generator的使用。

示例1:单个表的生成

假设我们有一个数据库demo,其中包含一个名为user的表,我们希望自动生成User.java和对应的映射文件UserMapper.xml及Dao接口UserMapper.java。

  1. 首先,我们需要在demo目录下创建一个名为generatorConfig.xml的配置文件,具体内容可以参考上述配置文件的例子。

  2. 然后在命令行中进入到该目录,运行以下命令:

java -jar mybatis-generator-core-1.4.0.jar -configfile generatorConfig.xml -overwrite

这个命令会自动生成User.java和相关的映射文件及Dao接口文件。

示例2:多个表的生成

若我们需要生成多个表的代码,只需要在配置文件中添加多个table元素即可,例如:

  <context id="DbTable" targetRuntime="MyBatis3">
    <!-- 配置数据库链接参数 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/demo"
        userId="root"
        password="123456"/>

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

    <!-- 配置生成的mapping.xml的包和位置 -->
    <sqlMapGenerator targetPackage="com.example.dao.mapper"  targetProject="src/main/resources">
        <property name="enableSubPackages" value="true"/>
    </sqlMapGenerator>

    <!-- 配置生成的Dao接口的包和位置 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.dao.mapper"  targetProject="src/main/java">
        <property name="enableSubPackages" value="true"/>
    </javaClientGenerator>

    <!-- 配置生成的表名和类名的映射信息 -->
    <table tableName="user" domainObjectName="User" />
    <table tableName="order" domainObjectName="Order" />

  </context>

注意,运行时需要将 -overwrite 参数添加到命令中,以覆盖已有的文件。

java -jar mybatis-generator-core-1.4.0.jar -configfile generatorConfig.xml -overwrite

以上就是MyBatis Generator使用的完整攻略,希望能对你有所帮助。

本文标题为:Java的MyBatis框架中MyBatis Generator代码生成器的用法