MyBatis Generator自动生成实体代码
首先新建一个Maven工程
Maven配置如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jun.dec8</groupId>
<artifactId>mybatis-generator</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis-generator Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>8.0.32</version>
</dependency>
<dependency>
<groupId>com.hynnet</groupId>
<artifactId>oracle-driver-ojdbc6</artifactId>
<version>12.1.0.1</version>
</dependency>
</dependencies>
<build>
<finalName>mybatis-generator</finalName>
</build>
</project>
可以看到通过添加mybatis-generator-core,oracle-driver-ojdbc,自动导入mybatis generator工具jar包,以及数据库连接jar包
工程文件结构如图所示,在src/main/resources文件夹创建myBatisGeneratorConfig.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="D:\Java\Maven\repository\com\hynnet\oracle-driver-ojdbc6\12.1.0.1\oracle-driver-ojdbc6-12.1.0.1.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="false"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@192.168.13.4:6006/dbjun"
userId="jun" password="jun">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="model" targetProject="mybatis-generator/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="xml" targetProject="mybatis-generator/src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="dao" targetProject="mybatis-generator/src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成哪些表-->
<table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
这里配置有几个点
- 数据库驱动
<classPathEntry location="D:\Java\Maven\repository\com\hynnet\oracle-driver-ojdbc6\12.1.0.1\oracle-driver-ojdbc6-12.1.0.1.jar"/>
- 数据库链接URL,用户名、密码
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@192.168.13.4:6006/dbjun" userId="jun" password="jun">
- 生成的实体类,DAO类,Mapper文件的位置
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="model" targetProject="mybatis-generator/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="xml" targetProject="mybatis-generator/src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="dao" targetProject="mybatis-generator/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
- 要生成哪些表
<table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
后面的一坨,全部设置成false,避免生成一些无用Example测试代码
方法1,用MyBatis Generator Eclipse插件生成
打开eclipse MarketPlace 搜索MyBatis Generator
安装插件,安装完之后重启
点击myBatisGeneratorConfig.xml,右键Generate MyBatis/iBATIS Artifacts,会提示你这个功能即将在下个版本被移除,不用管,点Ok
生成中…
成功
分别在我指定的文件夹下,生成了实体类,Mapper接口,以及MyBatis xml相应配置文件。
方法2,用Java代码生成
建一个工具类
代码如下
package mybatis;
import org.mybatis.generator.api.ShellRunner;
public class Generator {
public static void main(String[] args) {
String configPath = Generator.class.getResource("/myBatisGeneratorConfig.xml").getPath();
ShellRunner.main(new String[]{"-configfile", configPath, "-overwrite"});
}
}
注意路径,同时要将myBatisGeneratorConfig.xml中生成文件的地址写成绝对路径,否则会报错
用插件生成时,targetProject后的地址为相对路径,修改为如下
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="model" targetProject="D:\Java\workspace\mybatis-generator/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="xml" targetProject="D:\Java\workspace\mybatis-generator/src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="dao" targetProject="D:\Java\workspace\mybatis-generator/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
好了,两种方法介绍完了。