1. 程式人生 > >mybatis generator程式碼生成器使用

mybatis generator程式碼生成器使用

MyBatis Generator (MBG) 是一個Mybatis的程式碼生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各個版本的程式碼,和iBATIS 2.2.0版本以後的程式碼。 他可以內省資料庫的表(或多個表)然後生成可以用來訪問(多個)表的基礎物件。 這樣和資料庫表進行互動時不需要建立物件和配置檔案。 MBG的解決了對資料庫操作有最大影響的一些簡單的CRUD(插入,查詢,更新,刪除)操作。 您仍然需要對聯合查詢和儲存過程手寫SQL和物件。

mybatis-generator有三種用法:命令列、eclipse外掛、maven外掛,我們當然選擇maven外掛的方式最方便。

Eclipse下新建maven普通專案,只需要pom.xml檔案和generator的config檔案:

1.pom.xml

<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.citywy</groupId>
  <artifactId>mybatisgenerator01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
	  <groupId>org.mybatis</groupId>
	  <artifactId>mybatis</artifactId>
	  <version>3.4.5</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>5.1.38</version>
	</dependency>
  </dependencies>
  <build>
  	<finalName>mybatisgenerator</finalName>
  	<plugins>
		<plugin>
		    <groupId>org.mybatis.generator</groupId>
		    <artifactId>mybatis-generator-maven-plugin</artifactId>
		    <version>1.3.5</version>
		    <configuration>
				<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
        		<verbose>true</verbose>
        		<overwrite>true</overwrite>
		    </configuration>
		</plugin>
	</plugins>
  </build>
</project>

2.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>
    <!-- 資料庫驅動包位置 -->
    <classPathEntry location="E:\PACKAGE\mysql-connector-java-5.1.18.jar" />
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
        	<property name="suppressDate" value="false"/>
            <property name="suppressAllComments" value="true" />  
        </commentGenerator>
        <!-- 資料庫連結URL、使用者名稱、密碼 -->
         <!--<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/my_db?characterEncoding=utf8" userId="root" password="123456"> -->   
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/czssm" userId="root" password="admin"/>
        <!-- 生成模型的包名和位置 -->
        <javaModelGenerator targetPackage="com.citywy.model" targetProject="src/main/java">  
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成的對映檔案包名和位置 -->
        <sqlMapGenerator targetPackage="com.citywy.mapping" targetProject="src/main/java">  
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.citywy.dao" targetProject="src/main/java">  
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!-- 要生成那些表(更改tableName和domainObjectName就可以) -->  
        <table tableName="country" domainObjectName="country" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />  
        <table tableName="course" domainObjectName="course" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="middle" domainObjectName="middle" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
    </context>
</generatorConfiguration>

在ecplise中使用,則右擊工程,maven build,新增命令mybatis-generator:generate正常來說程式碼就生成了,就是上面紅框中的所有程式碼和資料夾。

-Dmaven.multiModuleProjectDirectory=$M2_HOME    以前跑maven專案也能跑啊,這個加上幹嗎用的呢?公司的環境不用下面這個,如果你執行報上面的錯就加上吧。