maven mybatis generator自動生成代碼

利用maven插件生成mybatis的 mapper dao entity 大大減少了工作量。

我的環境 

Eclipse Java EE IDE for Web Developers.
Version: Mars.1 Release (4.5.1)

在你的pom.xml下添加如下代碼

<build>
		<plugins>
			<!-- mybatis自動生成mapper插件 -->
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<executions>
					<execution>
						<id>Generate MyBatis Artifacts</id>
						<goals>
							<goal>generate</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<verbose>true</verbose>
					<overwrite>true</overwrite>
					<!-- <jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
					<jdbcURL>jdbc:mysql://120.25.162.108:3306/lzgstudy</jdbcURL>
					<jdbcUserId>root</jdbcUserId>
					<jdbcPassword></jdbcPassword> -->
				</configuration>
				<dependencies>
					<dependency>
						<groupId>mysql</groupId>
						<artifactId>mysql-connector-java</artifactId>
						<version>5.1.6</version>
					</dependency>
					<dependency>
						<groupId>org.mybatis.generator</groupId>
						<artifactId>mybatis-generator-core</artifactId>
						<version>1.3.2</version>
					</dependency>
					<dependency>
						<groupId>org.mybatis</groupId>
						<artifactId>mybatis</artifactId>
						<version>3.2.2</version>
					</dependency>
				</dependencies>
			</plugin>
			
		</plugins>
		
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<!-- copy-dependency plugin -->
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-dependency-plugin</artifactId>
										<versionRange>[1.0.0,)</versionRange>
										<goals>
											<goal>copy-dependencies</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>

								<!-- mybatis-generator-plugin -->
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.mybatis.generator</groupId>
										<artifactId>mybatis-generator-maven-plugin</artifactId>
										<versionRange>[1.3.2,)</versionRange>
										<goals>
											<goal>generate</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		
	</build>


添加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">
<!-- 項目 右鍵 》run as 》 maven bulid 》彈出對話框  在goals中輸入mybatis-generator:generate 》 點擊 Run -->  
<generatorConfiguration>
	<!-- 數據庫驅動,用maven 插件不需要外部的引入-->
	<!-- <classPathEntry	location="E:\project\vmanagerStore\src\main\resources\tools\mysql-connector-java-5.1.29.jar"/> -->
	<context id="DB2Tables"	targetRuntime="MyBatis3">
		<commentGenerator>
			<property name="suppressDate" value="true"/>
			<!-- 是否去除自動生成的註釋 true:是 : false:否 -->
			<property name="suppressAllComments" value="true"/>
		</commentGenerator>
		<!--數據庫鏈接URL,用戶名、密碼 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver" 
						connectionURL="jdbc:mysql://120.25.162.108:3306/lzgstudy" 
						userId="root" 
						password="">
		</jdbcConnection>
		
	   <!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析爲 Integer  
	   	    true,把JDBC DECIMAL 和 NUMERIC 類型解析爲java.math.BigDecimal -->  
		<javaTypeResolver>
			<property name="forceBigDecimals" value="true"/>
		</javaTypeResolver>
		
		<!-- 生成實體的包名和位置-->
		<javaModelGenerator targetPackage="com.lzg.entity" targetProject="./src/main/java">
			<property name="enableSubPackages" value="true"/>
			<property name="trimStrings" value="true"/>
		</javaModelGenerator>
		
		<!-- 生成Mapper文件的包名和位置-->
		<sqlMapGenerator targetPackage="configs.mapper" targetProject="./src/main/resources">
			<property name="enableSubPackages" value="true"/>
		</sqlMapGenerator>
		
		<!-- 生成DAO的包名和位置-->
		<javaClientGenerator type="XMLMAPPER" targetPackage="com.lzg.dao" targetProject="./src/main/java">
			<property name="enableSubPackages" value="true"/>
		</javaClientGenerator>
		
		<!-- 需要生成的表,tableName數據庫表名,domainObjectName對應的實體的類名,要生成多張表就複製多行-->
		<table tableName="testUser" domainObjectName="TestUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
	</context>
</generatorConfiguration>
上面xml文件 基本都有註釋了,要修改的地方可能就是 數據庫配置 和 代碼生成的路徑。完成後

項目 右鍵 》run as 》 maven bulid 》彈出對話框  在goals中輸入mybatis-generator:generate 》 點擊 Run

如圖,能看到代碼生成了。

問題:DAO的名字可能和我們習慣的IXxx不同,自己手動改下吧。

小技巧:數據庫字段命名爲user_name 生成的實體中就是 userName(駝峯命名),數據庫直接userName 實體中是username。

其他如果大家還有好的技巧歡迎留言哈。互相學習下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章