下面是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。
-
首先,我们需要在demo目录下创建一个名为generatorConfig.xml的配置文件,具体内容可以参考上述配置文件的例子。
-
然后在命令行中进入到该目录,运行以下命令:
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代码生成器的用法
基础教程推荐
- MYSQL 增加从库方式介绍 2022-10-23
- Oracle中分析函数over()的用法及说明 2023-07-23
- Redis分布式锁的实现方式 2023-07-13
- numpy多维数组索引问题 2023-07-28
- 关于SQL查询语句关键字方法 2023-07-28
- Node.js数据库操作之连接MySQL数据库(一) 2023-12-06
- 使用 SQL 服务器时,”评估期已过期”错误消息(解决方法) 2023-12-07
- Redis 高可用解决方案总结 2023-09-11
- mysql中的不等于实例详解 2023-07-26
- 关于MongoDB数据库核心概念 2023-07-16