mybatis-generator 代碼自動生成工具

    今天來記錄下mybatis-generator插件自動生成xml mapper和model還有dao接口,這樣咱們就能夠把精力放在業務代碼上,而不須要關心數據庫的具體操做。java

    這裏我使用eclipse做爲開發工具,採用maven來構建項目。mysql

1. 編寫pom.xml文件

      這裏只有3個jar文件,數據庫使用mysqlsql

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.jacksoft.mybatis</groupId>
	<artifactId>mybatis-generator</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<properties>
		<mybatis-generator.version>1.3.1</mybatis-generator.version>
		<mysql.version>5.1.13</mysql.version>
		<mybatis.version>3.0.3</mybatis.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${mysql.version}</version>
		</dependency>

		<dependency>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-core</artifactId>
			<version>${mybatis-generator.version}</version>
		</dependency>

		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>${mybatis.version}</version>
		</dependency>
	</dependencies>

	<build>
        <pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.mybatis.generator</groupId>
					<artifactId>mybatis-generator-maven-plugin</artifactId>
					<version>${mybatis-generator.version}</version>
					<configuration>
						<configurationFile>src/main/resources/config/mysqlGeneratorConfig.xml</configurationFile>
						<verbose>true</verbose>
						<overwrite>true</overwrite>
						<jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
						<jdbcURL>jdbc:mysql://localhost:3306/demo</jdbcURL>
						<jdbcUserId>root</jdbcUserId>
						<jdbcPassword>hwroot</jdbcPassword>
					</configuration>
					<!-- 自動生成 -->
					<executions>
						<execution>
							<id>Generate MyBatis Artifacts</id>
							<goals>
								<goal>generate</goal>
							</goals>
						</execution>
					</executions>
					<dependencies>
						<!-- 數據庫驅動 -->
						<dependency>
							<groupId>mysql</groupId>
							<artifactId>mysql-connector-java</artifactId>
							<version>${mysql.version}</version>
						</dependency>
					</dependencies>
				</plugin>
	
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.5</source>
						<target>1.5</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

   我這裏經過配置插件,讓maven在執行 mvn mybatis-generator:generate 的時候,自動從新生成代碼,由於生成的代碼中包含mybatis包中的類,因此也須要引入該包。數據庫

2.建立mysqlGeneratorConfig.xml文件

    在src/main/resources/config目錄下面建立mysqlGeneratorConfig.xml 文件,該文件是說明插件須要如何生成,以及生成對應的包名,路徑等信息。還有重要的就是咱們的表或者試圖,這裏能夠經過查看官方文檔,瞭解其具體的配置,好比重寫字段類型啊等等。這裏我只有一個表:apache

<?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>
    <!--數據庫驅動jar -->
    <!-- 
    <classPathEntry location="E:\mysql-connector-java-5.1.7-bin.jar" />
     -->

    <context id="mysqlTables" targetRuntime="MyBatis3">
        <!--去除註釋  -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--數據庫鏈接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/wuyedatabase"
                        userId="root"
                        password="123456">
        </jdbcConnection>
        
        <!--默認false
           Java type resolver will always use java.math.BigDecimal if the database column is of type DECIMAL or NUMERIC.
         -->
        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!--生成實體類 指定包名 以及生成的地址 (能夠自定義地址,可是路徑不存在不會自動建立  使用Maven生成在target目錄下,會自動建立) -->
        <javaModelGenerator targetPackage="com.jacksoft.mybatis.generator.model" targetProject="MAVEN">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        
        <!--生成SQLMAP文件 -->
        <sqlMapGenerator targetPackage="com.jacksoft.mybatis.generator.mapper" targetProject="MAVEN">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        
        <!--生成Dao文件 能夠配置 type="XMLMAPPER"生成xml的dao實現  context id="mysqlTables" 修改targetRuntime="MyBatis3"  -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.jacksoft.mybatis.generator.dao" targetProject="MAVEN">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!--對應數據庫表 mysql能夠加入主鍵自增 字段命名 忽略某字段等-->
        <table tableName="t_client" domainObjectName="Client" >
        </table>

    </context>
</generatorConfiguration>

3. 生成代碼

    到這裏就差很少了,保存爲該文件後,右鍵pom.xml,在Maven Build中新建一個」mybatis-generator「,Goals設置爲「mybatis-generator:generate」,再設置一下其餘maven build屬性,而後點擊右下角的Run按鈕,就能夠在target目錄中自動生成相關的mybatis源碼。mybatis

    具體以下圖:app



   對應的mapper,xml,model,example都生成好了,是否是很方便啊?dom

   可是該插件默認不帶分頁功能,分頁插件將在下一次記錄。eclipse

 

對於本身寫的插件沒法初始化的問題,能夠參照:maven

http://code.google.com/p/mybatis/issues/detail?id=343

也就是須要將本身的插件在配置plugin的時候加入,如:

<plugin>
	<groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-maven-plugin</artifactId>
	<version>${mybatis-generator.version}</version>
	<dependencies>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${mysql.version}</version>
		</dependency>
		<dependency>
			<groupId>com.jacksoft</groupId>
			<artifactId>mybatis-plugins-paging</artifactId>
			<version>${mybatis.paging.version}</version>
		</dependency>
	</dependencies>
</plugin>
相關文章
相關標籤/搜索