mybatis-geneator 是一款 mybatis 自动代码生成工具,MyBatis 属于半自动化的 ORM 框架,需要手动书写 Mapping 映射文件,mybatis-gennerator 可以帮助我们自动生成 mybatis 所需要的 Model、Dao、mapper xml 文件。
MyBatis Generator 官网地址:http://mybatis.org/generator/
mybatis-geneator 有如下几种使用方式:
- 命令行
- Java 程序
- Maven 插件
- Eclipse 插件
- Ant 方式
不管哪种方式,核心都需要一个配置文件 generatorConfig.xml,该文件包含了连接数据库参数;生成的 Model、Dao、Mapper 目标路径;指定数据库表;类型的转换处理等配置,以下为generatorConfig.xml内容示例:
<?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="E:\java_tfd\apache-maven-3.2.5-bin\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接 URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/hiov"
userId="root" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.huatec.hiot.iov.entity"
targetProject="E:\huatec\product\hiot\v2\workspace\hiov\core\src\main\java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="sqlmapper.iov"
targetProject="E:\huatec\product\hiot\v2\workspace\hiov\core\src\main\resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成 DAO 的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.huatec.hiot.iov.dao"
targetProject="E:\huatec\product\hiot\v2\workspace\hiov\core\src\main\java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName 是数据库中的表名或视图名 domainObjectName 是实体类名-->
<table tableName="user_emergcontact" domainObjectName="UserEmergcontact" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
说明:
- 数据库驱动可以通过上面 classPathEntry ->location 指定本地驱动 jar 文件位置,也可以直接在项目中引入 jar 依赖。就可以省略该 classPathEntry ->location 配置
- 上面生成 Model、Dao、Mapper 的目录 targetProject 我直接指定的相对路径(相对项目的根目录),也可以使用本地绝对路径(路径一定要写对,否则无法生成代码文件)
- 生成代码文件的最终路径是 targetProject + targetPackage
- 一个数据库表对应一个,所以可以同时指定多个
最简单的方式: 命令行运行
首先下载 Mybatis-Generator jar 包,可以到这个地址下载:https://github.com/mybatis/generator/releases ,这里我下载mybatis-generator-core-1.3.5.jar
接着,将mybatis-generator-core-1.3.5.jar 和 generatorConfig.xml放在同一个目录下
最后,在该目录打开命令行,执行如下命令
- java -jar mybatis-generator-core-1.3.5.jar -configfile generatorConfig.xml -overwrite
如果执行完提示:MyBatis Generator finished successfully.
则在该目录下的 target 下相应目录就可以看到生成的文件了。