之前用MyBatis框架的时候,都是手敲的代码,就感觉到好麻烦的样子。今天学习了利用MyBatis Generator自动生成代码,那接下来我就来详细介绍一下MyBatis Generator配置过程及其使用方法。
总结下该插件的使用及最佳实践。废话少说,直接上全过程:
1. 安装MyBatis-Generator插件
1.1、首先,你得有MyBatis Generator这个插件,本人是使用离线安装的方式进行安装的(当然你可以选择在eclipse中在线安装的方式进行安装)。 所以呢,离线安装MyBatis-Generator插件,下载地址:MyBatis-Generator插件下载mybatis-generator-eclipse-site-1.3.3.201606241937.zip
1.2、安装MyBatis-Generator插件 将下载的【mybatis-generator-eclipse-site-1.3.3.201606241937.zip】文件解压,如图:
将“features”、“plugins”拷贝到Eclipse的安装目录的相应目录中,重启Eclipse即可。 2、MyBatis-Generator的使用
重启Eclipse,然后在file-->new-->other中就能看到插件的是否配置成功,如图:
在工程项目src/main/resources中新建一个generatorConfig.xml文件(本人项目中了Maven,所以该文件放在resources下的generator中),如图:
该generatorConfig.xml文件的全部使用配置如下:
<?xml version="1.0" encoding="UTF-8"?>另外,上述配置信息中使用到的mybatis-generate.properties配置文件,直接放在resources下即可,配置如下:
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<properties resource="mybatis-generate.properties" />
<!-- 在MBG工作的时候,需要额外加载的依赖包 location属性指明加载jar/zip包的全路径 -->
<classPathEntry location="${generate.connection.location}" />
<context id="Mysql" targetRuntime="MyBatis3Simple"
defaultModelType="flat">
<!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表; 一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->
<property name="autoDelimitKeywords" value="false" />
<!-- 生成的Java文件的编码 -->
<property name="javaFileEncoding" value="UTF-8" />
<!-- 格式化java代码 -->
<property name="javaFormatter"
value="org.mybatis.generator.api.dom.DefaultJavaFormatter" />
<!-- 格式化XML代码 -->
<property name="xmlFormatter"
value="org.mybatis.generator.api.dom.DefaultXmlFormatter" />
<!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
<property name="beginningDelimiter" value="`" />
<property name="endingDelimiter" value="`" />
<!-- 注释 -->
<commentGenerator>
<property name="suppressAllComments" value="false"></property>
<property name="suppressDate" value="true"></property>
<property name="javaFileEncoding" value="utf-8" />
<property name="javaFormatter"
value="org.mybatis.generator.api.dom.DefaultJavaFormatter"></property>
<property name="xmlFormatter"
value="org.mybatis.generator.api.dom.DefaultXmlFormatter"></property>
</commentGenerator>
<!-- 数据库连接 -->
<jdbcConnection driverClass="${mysql.driverName}"
connectionURL="${mysql.url}" userId="${mysql.username}" password="${mysql.password}">
</jdbcConnection>
<!-- java类型处理器 用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl; 注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和
NUMERIC数据类型; -->
<javaTypeResolver
type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
<!-- true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型 false:默认, scale>0;length>18:使用BigDecimal;
scale=0;length[10,18]:使用Long; scale=0;length[5,9]:使用Integer; scale=0;length<5:使用Short; -->
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<javaModelGenerator targetPackage="${modelPackage}"
targetProject="yihg-travel-api/src/main/java">
<property name="enableSubPackages" value="false"></property>
<property name="trimStrings" value="true"></property>
<property name="constructorBased" value="false"></property>
<property name="immutable" value="false" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="${sqlMapperPackage}"
targetProject="yihg-travel-api/src/main/resources">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator targetPackage="${mapperPackage}"
type="XMLMAPPER" targetProject="yihg-travel-api/src/main/java">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true" />
<!-- 可以为所有生成的接口添加一个父接口,但是MBG只负责生成,不负责检查 <property name="rootInterface"
value=""/> -->
</javaClientGenerator>
<table tableName="assistant_group_order_transport">
<property name="constructorBased" value="false" />
<property name="ignoreQualifiersAtRuntime" value="false" />
<property name="immutable" value="false" />
<property name="modelOnly" value="false" />
<property name="useActualColumnNames" value="false" />
</table>
</context>
</generatorConfiguration>
mysql.driverName=com.mysql.jdbc.Driver在Generator配置文件中的配置详情请参照本博客文章【Mybatis-Generator之最完美配置详解】。 在数据库信息连接成功的情况下,在generatorConfig.xml配置文件上右键,如图:
mysql.url=jdbc:mysql://127.0.0.1:3306/yihg_openapi?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
mysql.username=root
mysql.password=root
modelPackage = com.yihg.travel.api.model
sqlMapperPackage = mappers
mapperPackage = com.yihg.travel.api.dao
generate.connection.location=D:/javamaven/maven-jars/repository/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar
点击小鸟运行即可根据数据库表名自动生成代码。就写到这里吧!!