MyBatis Generator ,后文中会使用缩写MBG来代替。
MBG 通过丰富的配置可以生成不同类型的代码,代码包含了数据库表对应的实体类 、Mapper 接口类、 Mapper XML 文件和 Example 对象等,
这些代码文件中几乎包含了全部的单表操作方法 。如果大家更喜欢看中文文档,也可以查看由作者组织翻译的中文文档,链接是 http ://
MyBatis Generator解决了对数据库操作有最大影响的
一些简单的 CRUD(插入,查询,更新,删除)操作,
你仍然需要对联合查询和存储过程手写 SQL 和 对象 。
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个标签的时候,必须严格按照举例这些标签的顺序进行配置。
第一个是 properties 标签。这个标签用来指定外部的属性元素,最多可以配置1个,也可以不配置。
properties标签用于指定一个需要在配置中解析使用的外部属性文件,引入属性文件后,可以在配置中使用 ${property}这种形式的引用,属性文件中的属性值。对于后面需要配置的JDBC信息会很有用。
properties标签包含resource和url两个属性,只能使用其中一个属性来指定。
第二个是 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="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat">
如果不希望生成和 Example 查询有关的内容,则可以按照如下方法进行配置 。
<context id="MySqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
数据库 中的分隔符 。 在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