平时我们的开发过程,除了系统框架的搭建。其他无非就是CRUD增删改查的代码逻辑搬砖,CRUD也就避免不了要跟数据库打交道。一般常见的数据库操作insert(增)、update(改)、select(查)、delete(删);常规传统的数据库层面开发,涉及如下过程:
1、建立数据库DB连接(已有表)
2、实体类/POJO/Mapper.xml
3、程序增删改查操作
其中,第二步:实体类/POJO/XML等;都是由手工编写的代码和xml文件,此为正向工程。
如一所述:正向工程,人为手工编写代码实体类/POJO/Mapper.xml等,很多操作都是重复并冗余的。比如:实体类,其实就是数据库表的一个映射,把表字段一个个列出来并设置getter/setter方法以便程序使用。pojo,select、update、delete、insert方法也都是千篇一律,无非就是方法不同,参数各异。xml,就是SQL语句的整合与数据库交互的连接点;对于同一个项目而言数据库连接相同,项目路径一样等。
如果:可以自动生成实体类、pojo、xml等,那么可以减轻很多重复人为工作量,转而由机器自动生成,当数据库表操作量大的话,会节省很多的时间。
1、Maven依赖,包括ojdbc数据库连接、mybatis支持、spring-mybatis插件这几大类。
SpringBoot对MyBatis插件的支持:
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.1.1
自动生成mybatis-generator-core依赖引入(核心):
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
org.mybatis.generator
mybatis-generator-core
1.3.2
2、generatorConfig.xml配置
3、CustomCommentGenerator自动生成的启动main方法入口class文件
package com.**links.**ps;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultCommentGenerator;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class CustomCommentGenerator extends DefaultCommentGenerator {
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {
// 添加字段注释
field.addJavaDocLine("/**");
if (introspectedColumn.getRemarks() != null) {
field.addJavaDocLine(" * " + introspectedColumn.getRemarks());
}
// addJavadocTag(field, false);
field.addJavaDocLine(" */");
}
public static void main(String[] args) throws Exception {
try {
List warnings = new ArrayList();
boolean overwrite = true;
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream("generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(is);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
按照上述步骤都做好之后,在不需要启动项目的前提下,即可自动生成代码。
右键单击CustomCommentGenerator类,选择run或debug
接下来,程序就自动生成指定的表所需要的实体类、POJO、mapper.xml
如下所示:
带有注释的实体类
如此,整个过程的步骤都完成了。
注:这里的生成路径是楼主自己建的临时路径文件夹src\main\java\com\**links\**ps\pas\tmp,然后再如果有批量的表需要自动生成,则只需在generatorConfig.xml文件中配置多个table即可。
......
MyBatis的逆向工程,给我们开发带来很大的便利。是开发者必须要掌握的技术,分享到这里;觉得有帮助随手给个赞和转发一下。