关闭

【java项目实践】在eclipse中使用利用mybatis-generator自动生成Model、Dao、mapping代码

标签: mybatis
2415人阅读 评论(0) 收藏 举报
分类:

       之前用MyBatis框架的时候,都是手敲的代码,就感觉到好麻烦的样子。今天学习了利用MyBatis Generator自动生成代码,那接下来我就来详细介绍一下MyBatis Generator配置过程及其使用方法。

      总结下该插件的使用及最佳实践。废话少说,直接上全过程:

 1. 安装MyBatis-Generator插件

     1.1、首先,你得有MyBatis Generator这个插件,本人是使用离线安装的方式进行安装的(当然你可以选择在eclipse中在线安装的方式进行安装)。 所以呢,离线安装MyBatis-Generator插件,下载地址:

     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"?>
        <!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>
另外,上述配置信息中使用到的mybatis-generate.properties配置文件,直接放在resources下即可,配置如下:
mysql.driverName=com.mysql.jdbc.Driver
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
在Generator配置文件中的配置详情请参照本博客文章【Mybatis-Generator之最完美配置详解】。
在数据库信息连接成功的情况下,在generatorConfig.xml配置文件上右键,如图:

点击小鸟运行即可根据数据库表名自动生成代码。
就写到这里吧!!









0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:131842次
    • 积分:2354
    • 等级:
    • 排名:第16530名
    • 原创:110篇
    • 转载:43篇
    • 译文:0篇
    • 评论:39条
    最新评论