`
wdmcygah
  • 浏览: 62657 次
社区版块
存档分类
最新评论

MyBatis代码自动生成

阅读更多

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&amp;characterEncoding=utf8&amp;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代码自动生成

    标题"mybatis代码自动生成"指的就是使用MyBatis Generator来自动化生成MyBatis项目的部分代码。这个项目包含了详细的步骤,使得初学者或开发者能够快速理解和应用MBG。 描述中提到的"mybatis自动生成代码的项目,...

    好用的mybatis代码自动生成插件

    为了解决这个问题,开发者们开发了专门的MyBatis代码自动生成插件,使得我们可以快速、方便地生成所需的代码,极大地提高了开发效率。 标题中提到的"好用的MyBatis代码自动生成插件"通常指的是MyBatis Generator ...

    mybatis代码自动生成工具

    标题提及的“mybatis代码自动生成工具”是MyBatis官方提供的一个实用工具,它的主要功能是根据数据库表结构自动创建相应的Java实体类、Mapper接口和Mapper XML文件。这使得开发人员无需手动编写这些基础代码,可以更...

    mybatis代码自动生成插件

    这款名为"Mybatis代码自动生成插件"的工具,通过简单的配置,就能自动生成Mapper接口、Mapper XML文件、实体类以及Service层的相关代码,大大减少了重复性劳动。 在使用这款插件之前,你需要将下载的压缩包文件解压...

    mybatis代码自动生成器

    MyBatis代码自动生成器是一款高效实用的工具,旨在帮助开发者快速生成MyBatis相关的Java代码,包括DAO层、Service层、Mapper接口以及XML配置文件等。它极大地提高了开发效率,减少了手动编写重复代码的工作量,使...

    Mybatis代码自动生成工具

    Mybatis代码自动生成工具是一种高效开发神器,专为简化基于Mybatis框架的Java项目开发而设计。它能够根据已有的数据库表结构自动生成相应的Java实体类(Entity Class)以及Mybatis映射文件(Mapper XML)中的SQL语句...

    mybatis代码自动生成,可修改生成模板

    MyBatis代码自动生成工具是一种高效开发神器,它极大地简化了开发者手动编写重复代码的工作,提高了开发效率。本文将深入探讨MyBatis自动代码生成器的原理、使用方法以及其在实际开发中的应用。 首先,MyBatis Auto...

    mybatis代码自动生成工具含swagger2 配置

    这里提到的"mybatis代码自动生成工具含swagger2 配置"是一个整合了Swagger2的MyBatis代码生成解决方案,旨在帮助开发者快速构建带有API文档的RESTful服务。 Swagger2是一个强大的API文档工具,它可以自动生成并展示...

    mybatis 代码自动生成 ,并且自定义注释结合swagger

    首先,MyBatis的代码生成器(MyBatis Generator,简称MBG)能够自动生成Mapper接口、Mapper XML文件、实体类以及对应的DAO层代码,大大减少了手动编写这些基础代码的时间。通过自定义MBG的配置文件,我们可以定制...

    mybatis代码自动生成器(eclipse打开)

    用eclipse打开项目,通过修改generatorConfig.XML文件连接数据库(MySQL),自动根据数据表来生成mybatis所需的数据查询模型,可以参考文件中自带的generato配置详解来配置

    mybatis 代码自动生成工具

    代码自动生成工具在MyBatis中的应用,极大地提高了开发效率,减少了手动编写重复性代码的工作量。通过这样的工具,我们可以快速生成基于MyBatis的Mapper、DAO(数据访问对象)以及POJO(Plain Old Java Object,简单...

    mybatis代码生成器(支持mysql和sqlServer)

    mybatis代码自动生成器,在generatorConfig.xml中配置好数据库连接和表名,进入解压后的目录运行如下命令:java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite 即可自动生成...

Global site tag (gtag.js) - Google Analytics