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>
相关文章
相关标签/搜索