首页 > 其他 > 详细

MyBatis从入门到精通(第5章):MyBatis代码生成器

时间:2019-09-10 09:54:12      阅读:86      评论:0      收藏:0      [点我收藏+]

  

MyBatis从入门到精通(第5章):MyBatis代码生成器

MyBatis Generator ,后文中会使用缩写MBG来代替。

MBG 通过丰富的配置可以生成不同类型的代码,代码包含了数据库表对应的实体类 、Mapper 接口类、 Mapper XML 文件和 Example 对象等,

这些代码文件中几乎包含了全部的单表操作方法 。如果大家更喜欢看中文文档,也可以查看由作者组织翻译的中文文档,链接是 http :// 

MyBatis Generator解决了对数据库操作有最大影响的
一些简单的 CRUD(插入,查询,更新,删除)操作,
你仍然需要对联合查询和存储过程手写 SQL 和 对象 。

 5.1 XML 配置详解 

MBG 具有丰富的配置可供使用 , 这些配置需要以 XML 形式的标签和属性来实现,所以本节就对 MBG 的 XML 配置进行详细介绍。 

首先按照 MBG 的要求添加 XML 的文件头。在文件头之后,需要写上 XML 文件的根节点  <generatorConfiguration>

<?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="F:\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/> -->
    
    <context id="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <property name="javaFileEncoding" value="UTF-8"/>

        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="addRemarkComments" value="true"/>
        </commentGenerator>

        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mybatis"
                        userId="root"
                        password="">
        </jdbcConnection>

        <javaModelGenerator targetPackage="test.model" targetProject="src\main\java">
            <property name="trimStrings" value="true" />
            <property name="rootClass" value="tk.mybatis.simple.model.BaseEntity" />
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="test.xml"  targetProject="src\main\resources"/>

        <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao"  targetProject="src\main\java"/>

        <table tableName="%">
            <generatedKey column="id" sqlStatement="MySql"/>
        </table>
    </context>
</generatorConfiguration>

下面先介绍 generatorConfiguration 标签下的3个子级标签,分别是:properties、classPathEntry 、context 。在配置这3个标签的时候,必须严格按照举例这些标签的顺序进行配置。

5.1.1

  第一个是 properties 标签。这个标签用来指定外部的属性元素,最多可以配置1个,也可以不配置。

  properties标签用于指定一个需要在配置中解析使用的外部属性文件,引入属性文件后,可以在配置中使用 ${property}这种形式的引用,属性文件中的属性值。对于后面需要配置的JDBC信息会很有用。

  properties标签包含resourceurl两个属性,只能使用其中一个属性来指定。

  •   resource:指定classpath下的属性文件,类似 com/myproject/generatorConfig.properties这样的属性值。
  •   url: 指定文件系统上的特定位置,例如 file:///C:/myfolder/generatorConfig.properties

  第二个是 classPathEntry标签。这个标签可以配置多个,也可以不配置。通过属性location指定驱动的路径,代码如下。

 

<classPathEntry location="F:\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>

 

  第三个是context标签。该标签至少配置1个,可以配置多个。

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

  •  context标签只有一个必选属性 id,用来唯确定该标签。
  •  defaultModelType :这个属性很重要,定义了 MBG 如何生成实体类。该属性有以下可选值 。 

技术分享图片

 

 

  •  targetRuntime :此属性用于指定生成的代码的运行时环境。
<context id="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat">

  如果不希望生成和 Example 查询有关的内容,则可以按照如下方法进行配置

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

  技术分享图片


5.1.1  property标签

数据库 中的分隔符 MySQL中可以使用反单引号“ ` ”作为分隔符,例如

`user info`

通过分隔符可以将其中的内容作为一个整体的字符串进行处理,当SQL中有数据库关键字时,使用反单引号括住关键字,可以避免数据库产生错误。

MBG 中维护了个关键字列表,当数据库的字段或表与这些关键字样时, MBG 会自动给这些字段或表添加分隔符。关键字列表可以查看 MBG 中的 org.mybatis.generator.internal.db.SqlReservedWords 类。 

 

        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <property name="javaFileEncoding" value="UTF-8"/>    

 

 

 

 



 

 

 

 

 

===================

end

MyBatis从入门到精通(第5章):MyBatis代码生成器

原文:https://www.cnblogs.com/MarlonKang/p/11495292.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!