Mybatis逆向工程之四种实现方法
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即会生成三个文件