2015年11月16日 Maven 浏览(642)

mybatis generator 代码自动生成策略

目前主流的mybatis框架获得越来越多开发爱好者的亲睐。

而mybatis generator代码自动生成器的出现,在解放程序猿劳动力方面的作用更加明显。有了mybatis generator,程序猿们将有更多的精力专注于服务层、控制层、视图层的开发,而无需浪费太多时间在DAO操作上。


那么,如何使用mybatis generator ?


第一步:创建一个maven工程,如图


QQ图片20151116233952.png


第二步:在generatorConfig.xml中配置mapper、dao、entity生成策略


<?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>
    <!-- mysql驱动jar在本机的地址,用于连接数据库 -->
    <classPathEntry
        location="D:\mysql-connector-java-5.1.9.jar" />
    <context id="mysqlTables" targetRuntime="MyBatis3">
         <!-- 设置不生成注释 -->
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://127.0.0.1:3306/test" userId="root"
            password="root" />

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 自动生成的实体对象地址 -->
        <javaModelGenerator targetPackage="com.everycoding.entity"
            targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 自动生成的sql mapper地址 -->
        <sqlMapGenerator targetPackage="mybatis.mappings"
            targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!-- 自动生成的dao,这里后缀是Mapper的地址 -->
        <javaClientGenerator type="XMLMAPPER"
            targetPackage="com.everycoding.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!--  xxxByExample="false" 设置不生成Example-->
        <table tableName="login_log" domainObjectName="LoginLog"
            enableCountByExample="false" enableUpdateByExample="false"
            enableDeleteByExample="false" enableSelectByExample="false"
            selectByExampleQueryId="false">
            <!-- 主键id的自动生成策略 -->
            <generatedKey column="id" identity="true"
                sqlStatement="SELECT @@IDENTITY AS ID" />
        </table>
    </context>

</generatorConfiguration>


第三步:在pom.xml中,添加mybatis generator 插件plugin


<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>mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>mybatis</name>
    <description>mybatis</description>
    <build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.1</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>


第四步:执行Maven自动生成代码命令


笔者eclipse安装了maven插件,如图:

QQ图片20151116235148.png


maven命令:

mybatis-generator:generate

执行结果如图:

[INFO] --- mybatis-generator-maven-plugin:1.3.1:generate (default-cli) @ mybatis ---
[INFO] Connecting to the Database
[INFO] Introspecting table login_log
[INFO] Generating Record class for table login_log
[INFO] Generating Mapper Interface for table login_log
[INFO] Generating SQL Map for table login_log
[INFO] Saving file LoginLogMapper.xml
[INFO] Saving file LoginLog.java
[INFO] Saving file LoginLogMapper.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.867s
[INFO] Finished at: Mon Nov 16 23:53:23 CST 2015
[INFO] Final Memory: 3M/5M
[INFO] ------------------------------------------------------------------------


用户头像