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的主要内容,如果未能解决你的问题,请参考以下文章
13.1 MyBatis Generator概述(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》
mybatis代码生成器——MyBatis Generator
mybatis 生成代码配置 mybatis-generator:generate 的使用详解