MBG配置详解

本文详细介绍了MyBatis Generator(MBG)的XML配置文件,包括配置文件头、根节点、子元素的解析,重点讲解了`context`元素的各个子元素,如`jdbcConnection`、`javaModelGenerator`、`sqlMapGenerator`、`mapperGenerator`、`table`等。此外,还分享了MBG的最佳实践,建议使用`generatedKey="none"`和取消注释生成的时间戳,推荐配置`enableSubPackages="true"`以生成子包,以及将JDBC驱动添加到类路径中,避免使用`classPathEntry`。
摘要由CSDN通过智能技术生成

 

MyBatis Generator中文文档

MyBatis Generator中文文档地址:

http://mbg.cndocs.ml/

该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。

本文中所有节点的链接都是对应的中文文档地址,可以点击查看详细信息。

注:本文后面提到的MBG全部指代MyBatis Generator。

MyBatis Generator 1.3.4 扩展,可以设置 Mapper(Dao)后缀

运行MyBatis Generator

有4种运行MBG的方法,具体请看文档 运行 MyBatis Generator

MBG下载地址:http://repo1.maven.org/maven2/org/mybatis/generator/mybatis-generator-core/

XML配置详解

在MBG中,最主要也最重要的就是XML配置文件,因此本篇文章主要的内容就是XML配置。

这里按照配置的顺序对配置逐个讲解,更细的内容可以配合中文文档参照。

1. 配置文件头

<?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">

 

使用最新版的MBG需要使用上面的xml头,配置文件必须包含上面的DOCTYPE

2. 根节点<generatorConfiguration>

generatorConfiguration节点没有任何属性,直接写节点即可,如下:

<generatorConfiguration>

<!-- 具体配置内容 -->

</generatorConfiguration>

3. <generatorConfiguration>子元素

从这段开始,就是配置的主要内容,这些配置都是generatorConfiguration元素的子元素。

包含以下子元素(有严格的顺序):

<properties> (0个或1个)

<classPathEntry> (0个或多个)

<context> (1个或多个)

3.1 <properties> 元素

这个元素用来指定外部的属性元素,不是必须的元素。

元素用于指定一个需要在配置中解析使用的外部属性文件,引入属性文件后,可以在配置中使用 ${property}这种形式的引用,通过这种方式引用属性文件中的属性值。 对于后面需要配置的**jdbc信息**和targetProject属性会很有用。

这个属性可以通过resource或者url来指定属性文件的位置,这两个属性只能使用其中一个来指定,同时出现会报错。

  • resource:指定**classpath**下的属性文件,使用类似com/myproject/generatorConfig.properties这样的属性值。

  • url:可以指定文件系统上的特定位置,例如file:///C:/myfolder/generatorConfig.properties

3.2 <classPathEntry> 元素

这个元素可以0或多个,不受限制。

最常见的用法是通过这个属性指定驱动的路径,例如:

<classPathEntry location="E:\mysql\mysql-connector-java-5.1.29.jar"/>

重点提醒:本文之前在这里有误导,特别强调。

 

注意,classPathEntry只在下面这两种情况下才有效

  • 当加载 JDBC 驱动内省数据库时
  • 当加载根类中的 JavaModelGenerator 检查重写的方法时

因此,如果你需要加载其他用途的jar包,classPathEntry起不到作用,不能这么写,解决的办法就是将你用的jar包添加到类路径中,在Eclipse等IDE中运行的时候,添加jar包比较容易。当从命令行执行的时候,需要用java -cp xx.jar,xx2.jar xxxMainClass这种方式在-cp后面指定来使用(注意-jar会导致-cp无效)。

3.3 <context> 元素

在MBG的配置中,至少需要有一个<context>元素。

<context>元素用于指定生成一组对象的环境。例如指定要连接的数据库,要生成对象的类型和要处理的数据库中的表。运行MBG的时候还可以指定要运行的<context>

该元素只有一个**必选属性**id,用来唯一确定一个<context>元素,该id属性可以在运行MBG的使用。

此外还有几个**可选属性**:

  • defaultModelType:**这个属性很重要**,这个属性定义了MBG如何生成**实体类**。
    这个属性有以下可选值:

    • conditional:*这是默认值*,这个模型和下面的hierarchical类似,除了如果那个单独的类将只包含一个字段,将不会生成一个单独的类。 因此,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中。
    • flat:该模型为每一张表只生成一个实体类。这个实体类包含表中的所有字段。**这种模型最简单,推荐使用。**
    • hierarchical:如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段, 则会为表生成一个包含所有BLOB字段的单独的实体类,然后为所有其他的字段生成一个单独的实体类。 MBG会在所有生成的实体类之间维护一个继承关系。
  • targetRuntime:此属性用于指定生成的代码的运行时环境。该属性支持以下可选值:

    • MyBatis3:*这是默认值*
    • MyBatis3Simple
    • Ibatis2Java2
    • Ibatis2Java5 一般情况下使用默认值即可,有关这些值的具体作用以及区别请查看中文文档的详细内容。
  • introspectedColumnImpl:该参数可以指定扩展org.mybatis.generator.api.IntrospectedColumn该类的实现类。该属性的作用可以查看扩展MyBatis Generator

一般情况下,我们使用如下的配置即可:

<context id="Mysql" defaultModelType="flat">

如果你希望不生成和Example查询有关的内容,那么可以按照如下进行配置:

<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">

使用MyBatis3Simple可以避免在后面的<table>中逐个进行配置(后面会提到)。

MBG配置中的其他几个元素,基本上都是<context>的子元素,这些子元素(有严格的配置顺序)包括:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值