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\sh\.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://172.16.0.218\DEPSERVER;databaseName=DEP_218" userId="sa" password="dep@2014">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置 targetPackage:指定模型类的生成位置(即包名) targetProject:指定目标位置-->
<javaModelGenerator targetPackage="com.winning.spd.manager.model.surgery" 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.mssql" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 定义客户端生成器属性。对于ibatis2,生成对象采用Dao接口和实现类。对于MyBatis,生成的对象采用映射器接口的形式 -->
<!-- type="XMLMAPPER" 表示:生成的对象将是MyBatis 3.x映射程序基础结构的Java接口。接口将依赖于生成的XML映射器文件。-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.winning.spd.manager.mapper" targetProject="src\main\java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table tableName="Order_Surgery" domainObjectName="Surgery" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
<property name="useActualColumnNames" value="true" />
</table>
</context>
</generatorConfiguration>

执行MBG,生成配置文件

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

posted @ 2017-10-11 11:55  AHAU航哥  阅读(347)  评论(0编辑  收藏  举报