MyBatis相关文件主要有三部分:Java POJO(实体类)、Sql Map XML、Java Client(Mapper类)。当数据表较少的时候,这些文件都手写完成是没有太大问题的;如果是成百上千张表,也选择手写的话估计想哭的心都有了,而 且出错率高。所以为了提高编写MyBatis代码的效率和质量,MyBatis开发一个自动生成代码的项目:MyBatis-Generator,简称MBG,用来自动生成上述的三类文件。
官方帮助文档地址:http://mybatis.github.io/generator/index.html
MBG是根据提供的数据库表进行文件的生成,整个MBG的核心实际是一个XML描述文件,文件描述的内容主要包括:
(1)数据从哪来:数据库连接信息,即<jdbcConnection>
标签内容;
(2)Java POJO生成到哪里:即生成目录,<javaModelGenerator>
标签内容;
(3)Sql Map生成到哪里:即生成目录,<sqlMapGenerator>
标签内容;
(4)Java Client生成到哪里,生成什么类型的代码:这是可选标签,<javaClientGenerator>
标签内容;
(5)表数据具体如何生成:<table>
标签内容。
当然,整个XML文件还有很多其它标签,每个具体的用法及含义在官方文档里面有详细介绍,地址是:http://mybatis.github.io/generator/configreference/xmlconfig.html
简单示例:
<?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> <classPathEntry location="D:\Program Files\springToolSuite\mvn_repository\mysql\mysql-connector-java\5.1.30\mysql-connector-java-5.1.30.jar" /> <context id="MysqlTables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressAllComments" value="true" /> <property name="suppressDate" value="true" /> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&generateSimpleParameterMetadata=true" userId="root" password="root"> </jdbcConnection> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <javaModelGenerator targetPackage="com.research.mybatis.generator.model" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="generator.mapper" targetProject="src/main/resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="com.research.mybatis.generator.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <table schema="research" tableName="person" domainObjectName="PERSON" > <property name="useActualColumnNames" value="true"/> <columnOverride column="P_NAME" property="pName" /> </table> </context> </generatorConfiguration>
MBG自动生成的XML描述文件定义好之后就可以开始生成了,具体的生成方式有四种:
1. 命令行生成: 例如java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite,这里要注意generatorConfig.xml文件中配置的classPathEntry路径的正确性。
2. Ant生成:官网有例子,直接参考吧,这种方式我没有试。示例
3. Maven生成: 这里是使用Maven插件生成的,生命周期是在编译期之前。示例
4. Java代码生成:项目引入mybatis-generator-core包后,通过加载XML配置文件,直接通过生成。示例
个人觉得如果MyBatis相关的代码改动比较频繁,可以使用Maven生成方式,这样使用Maven打包的时候会自动生成新的相关文件;如果是表结构已经确定,改动较小,Java代码生成的方式更为合适。
相关推荐
mybatis代码自动生成,配置好数据源,定义好实体类dao层等,自动生成代码
支持mybatis代码自动生成,修改generatorConfig.xml,运行run.bat即可
在eclipse上最好用的mybatis代码自动生成插件,配置好generatorConfig.xml文件后,直接右键菜单运行,即可简单、快速的生成mybatis所需的全部代码。
mybatis代码自动生成器,里面有说明使用文档
mybatis 代码自动生成 配置 mybatis 代码自动生成 配置 mybatis 代码自动生成 配置mybatis 代码自动生成 配置
用eclipse打开项目,通过修改generatorConfig.XML文件连接数据库(MySQL),自动根据数据表来生成mybatis所需的数据查询模型,可以参考文件中自带的generato配置详解来配置
直接解压到.IntelliJIdea2018.2\config\plugins目录下,重启idea即可以使用。
一个Mybatis自动生成工具 可以根据数据库表生成Java Class 和 Mybatis对应的Select,Insert,Update,Delect等。
代码自动生成简单的增删改查Mapper、dao、pojo文件自动生成
Mybatis代码生成工具 mybatis-generator-core-1.3.2亲测可用,内置Mysql数据库驱动包,及命令行文本记录,方便使用。
由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将...
mybatis自动生成工具,带swagger2注释 以及时间格式处理