mybatis generator

Posted AHAU航哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis generator相关的知识,希望对你有一定的参考价值。

MyBatis Generator(简称MBG)是MyBatis的代码生成器

设计目标:

MBG用于内省数据库表,并将其生成可用于访问表的工件。MBG旨在对CRUD数据库操作进行自动化配置。MBG用来生成简单的实体类、映射文件。连接查询或存储过程等复杂操作还需要手动编写。

运行过程:

1.解析配置文件:generatorConfig.xml

2.连接数据库,获取表结构等信息

3.根据配置文件,将每个表对应的实习类、配置文件等自动生成到项目固定位置

运行方式:

可以以ANT、命令行、MAVEN等方式进行配置运行

本文以Maven运行方式进行配置。

MBG包含了一个用于集成到maven构建中的Maven插件(在maven项目的pom.xml文件中设置):

        <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>
                <executions>
                    <execution>
                        <id>Generate MyBatis Artifacts</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

插件包含一个目标:

  • mybatis-generator:generate

可以通过命令执行目标:

  • mvn mybatis-generator:generate

generatorConfig.xml文件配置

执行generate构建目标的时候,首先会扫描:src/main/resources/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>
    <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包。因为MBG生成器需要首先连接并解析数据库表结构-->
    <classPathEntry  location="C:\Users\WYF\.m2\repository\com\microsoft\sqlserver\mssql-jdbc\6.1.0.jre7\mssql-jdbc-6.1.0.jre7.jar"/>
    <!-- 上下文环境。 id:唯一标识、值会用于一些错误信息的提示。targetRuntime:mybatis版本代码(默认为:MyBatis3)-->
    <context id="mssql2014Tables"  targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否在注释中生成时间戳 true:是 : false:否 -->
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" connectionURL="jdbc:sqlserver://127.0.0.1;databaseName=DEMO" userId="sunhang" password="admin123sh_">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置 targetPackage:指定模型类的生成位置(即包名) targetProject:指定目标位置-->
        <javaModelGenerator targetPackage="com.example.summer.model" targetProject="src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置 targetPackage:指定 targetProject:指定目标位置-->
        <!-- sqlMapGenerator 为每个内省表构建一个MyBatis / iBATIS格式的SQL映射XML文件
       如果iBATIS2被定向,则该元素是<context>元素的必需子元素。 如果MyBatis3被定向,那么只有当您选择的javaClientGenerator需要XML时,该元素才是<context>元素的必需子元素。 如果不指定javaClientGenerator,则应用以下规则: 如果您指定了sqlMapGenerator,那么MBG将仅生成SQL映射XML文件和模型类。 如果不指定sqlMapGenerator,那么MBG将仅生成模型类。
--> <sqlMapGenerator targetPackage="main.resources.mapper" targetProject="src"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 定义客户端生成器属性。对于ibatis2,生成对象采用Dao接口和实现类。对于MyBatis,生成的对象采用映射器接口的形式 --> <!-- type="XMLMAPPER" 表示:生成的对象将是MyBatis 3.x映射程序基础结构的Java接口。接口将依赖于生成的XML映射器文件。--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.summer.mapper" targetProject="src\main\java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名--> <table tableName="T_USER" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> <table tableName="T_PRODUCT" domainObjectName="Product" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>

详细配置见:http://www.mybatis.org/generator/index.html

执行MBG,生成配置文件

执行 mvn mybatis-generator:generate 命令,若构建无误,则可以顺利生成模型类、映射接口和SQL映射XML文件


以上是关于mybatis generator的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis使用Generator自动生成代码

13.1 MyBatis Generator概述(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》

mybatis代码生成器——MyBatis Generator

mybatis 生成代码配置 mybatis-generator:generate 的使用详解

MyEclipse下安装MyBatis Generator代码反向生成工具

使用Mybatis Generator自动生成Mybatis相关代码