MyBatis Generator ORM层面的代码自动生成器(推荐)
_小许_ 人气:0在日常开发工作中,我们往往需要自己去构建各种数据表所对应的持久化对象(POJO)、用于操作数据库的接口(DAO)以及跟 DAO 所绑定的对应 XML。这都是一些重复性的操作,不需要多大技术含量。MyBatis Generator工具,能够帮助我们去自动生成这些文件。
MyBatis Generator 简介
作为一个基于 MyBatis 的独立工具,MyBatis Generator 能够满足我们以上的要求,能够通过简单的配置去帮我们生成数据表所对应的 POJO、DAO、XML 等文件,减去我们手动去生成这些文件的时间,有效提高开发效率。MyBatis Generator 运行方式多样,主要可以通过以下几种方式来运行:
- 命令行
- Ant
- Maven
- Java
- IDE
Mybatis Generator简称 MBG,是一个专门为 MyBatis和 ibatis框架使用者提供的代码生成器。也可以快速的根据数据表生成对应的pojo类、Mapper接口、Mapper文件,甚至生成QBC风格的查询对象。
MyBatis Generator的使用
使用 MyBatis Generator,需要在项目中配置了数据库和 MyBatis 的相关依赖。
引入插件
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <!-- mybatis-generator --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency>
配置生成器文件
<?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> <!--targetRuntime="MyBatis3"--> <context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple"> <!-- 生成的Java文件的编码 --> <property name="javaFileEncoding" value="UTF-8" /> <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; --> <property name="beginningDelimiter" value="`" /> <property name="endingDelimiter" value="`" /> <!-- 注释生成器 --> <commentGenerator> <property name="suppressDate" value="true" /> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 必须要有的,使用这个配置链接数据库 @TODO:是否可以扩展 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="1111"> </jdbcConnection> <!-- 生成domain对象 --> <javaModelGenerator targetPackage="com.sunny.domain" targetProject="mybatis-11_MBG/src/main/java"> <property name="enableSubPackages" value="true" /> </javaModelGenerator> <!-- 生成Mapper文件 --> <sqlMapGenerator targetPackage="com.sunny.mapper" targetProject="mybatis-11_MBG/\src\main\resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成Mapper接口 --> <javaClientGenerator targetPackage="com.sunny.mapper" type="XMLMAPPER" targetProject="mybatis-11_MBG/src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- Table To POJO --> <!--domainObjectName="User"--> <table tableName="user2" delimitIdentifiers="true"> <property name="useActualColumnNames" value="true" /> <generatedKey column="id" sqlStatement="JDBC" /> </table> </context> </generatorConfiguration>
配置文件极为重要,对应数据库表生成POJO对象的映射关系由配置文件完成。
运行配置文件
Java代码运行:
public class Generator { public static void main(String[] args) throws Exception { //MBG执行过程中的警告信息 List<String> warnings = new ArrayList<String>(); //生成代码重复时,是否覆盖源代码 boolean override = false; InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(in); DefaultShellCallback callback = new DefaultShellCallback(override); //创建MBG MyBatisGenerator mbg = new MyBatisGenerator(config, callback, warnings); mbg.generate(null); //输出警告信息 for (String warn : warnings) { System.out.println(warn); } } }
通过Maven插件运行:
如果使用Maven插件,那么不需要引入mybatis-generator-core
依赖,只需要引入一个Maven的插件mybatis-generator-maven-plugin
<plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.0</version> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <!-- 输出详细信息 --> <verbose>true</verbose> <!-- 覆盖生成文件 --> <overwrite>true</overwrite> <!-- 定义配置文件 --> <configurationFile>${basedir}/src/main/resources/generator-configuration.xml</configurationFile> </configuration> </plugin> </plugins>
通过mvn mybatis-generator:generate
运行,或者IDE一键运行。
参考文献:
加载全部内容