1.逆向工程之原始方法
(1)下載兩個jar包:mysql-connector-java(6.x版本及以上的和5.x版本有所區別,主要是驅動和時區;詳情參見:https://blog.csdn.net/csugonghang/article/details/79435033)、mybatis-generator-core
(2)創建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> <!-- 數據庫驅動,如果配置文件和上面兩個jar在同一級目錄,則可以直接如下填寫,否則為了防止報錯直接寫絕對路徑即可--> <classPathEntry location="mysql-connector-java-5.1.38.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/liuzj" userId="root" password=""> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成模型的包名和位置 --> <javaModelGenerator targetPackage="com.liuzj.mybatis.entity" targetProject="E:\self-code\mybatistest\src\main\java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成映射文件的包名和位置 --> <sqlMapGenerator targetPackage="mapper" targetProject="E:\self-code\mybatistest\src\main\resources"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成的Mapper接口的路徑 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.liuzj.mybatis.mapper" targetProject="E:\self-code\mybatistest\src\main\java"> <property name="enableSubPackages" value="true"/> <property name="rootClass" value="com.springboot.mybatis.demo.mapper.common.BaseMapper"/> </javaClientGenerator> <!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名 --> <table tableName="person" domainObjectName="Person" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
(3)將上面三個東西一起放到項目的特定位置,此樣例是將三個東西一起放到了和項目src同級目錄,如果是其他目錄也可以,但是需要改動generatorConfig配置文件的相關配置
(4)執行 java -jar mybatis-generator-core-5.1.38.jar -configfile generatorConfig.xml -overwrite
2.逆向工程之Maven集成
(1)在pom文件中引入插件:mybatis-generator-maven-plugin;具體樣例如下:
<build> <plugins> <!-- mybatis-generator反向工程 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <!-- 在控制台打印執行日志 --> <verbose>true</verbose> <!-- 重復生成時會覆蓋之前的文件--> <overwrite>true</overwrite> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> </configuration> <!-- 此插件運行所要依賴的jar --> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.2</version> </dependency> </dependencies> </plugin> </plugins> </build>
(2)創建generatorConfig配置文件並放到上面 configurationFile 配置的路徑下;詳細配置如下:
<?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="mysql-connector-java-5.1.38.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/liuzj" userId="root" password=""> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成模型的包名和位置 --> <javaModelGenerator targetPackage="com.liuzj.mybatis.entity" targetProject="E:\self-code\mybatistest\src\main\java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成映射文件的包名和位置 --> <sqlMapGenerator targetPackage="mapper" targetProject="E:\self-code\mybatistest\src\main\resources"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成的Mapper接口的路徑 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.liuzj.mybatis.mapper" targetProject="E:\self-code\mybatistest\src\main\java"> <property name="enableSubPackages" value="true"/> <property name="rootClass" value="com.springboot.mybatis.demo.mapper.common.BaseMapper"/> </javaClientGenerator> <!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名 --> <table tableName="person" domainObjectName="Person" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
注意此時驅動包無需再指定了
(3)找到對應Maven任務,點擊執行即可:
3.逆向工程之Gradle集成
(1)在build.gradle配置文件中添加如下信息:
buildscript {
repositories {
mavenLocal()
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
jcenter()
}
// maven插件
dependencies {
classpath "compile group: 'org.mybatis.generator', name: 'mybatis-generator-maven-plugin', version: '1.3.0'"
}
}
// MyBatis代碼自動生成工具
apply plugin: "com.arenagod.gradle.MybatisGenerator"
configurations {
mybatisGenerator
}
// 配置文件位置
mybatisGenerator {
verbose = true
configFile = 'src/main/resources/generatorConfig.xml'
}
(2)在 mybatisGenerator 配置中的位置創建generatorConfig配置文件,其詳細配置和第一種方式一樣、
(3)找到對應的gradle任務,點擊執行即可
四、IntellijIDE插件codehelper.generator自動生成代碼
(1)安裝插件
(2)重啟IDE
(3)根據實體類自動生成代碼
然后輸入實體類名字
點擊OK即會生成三個文件