版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Sunny5319/article/details/81611914
什么是逆向工程
MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。
公司李总自己写了一个mybatis逆向工程的工具,所以我们只需要配置相应的模板,将模板导入工具,就可以根据数据库生成基础框架了,大大提高了开发的效率,更让我亲身体会到了:基础代码机器都可以帮助我们做了,机器正在逐渐把重复的工位代替,所以我们要学习更多的知识,不仅仅是计算机方面的,因为,我们要做的是不做一般人!
工具具体使用步骤
1、选择工具
根据自己电脑的配置选择相应的程序--这里小编选择的是64位的
2、 选择数据源
根据如下步骤操作即可:
(1)生成元数据
(2)元数据生成代码
3、 配置元数据
配置元数据中将会有如下操作:
(1)配置:
这个配置信息很全面,可以连接mysql、Oracle、sqlserver数据库,同时根据数据库表名设计的相应规则,对数据库中的字段进行了处理,因为在mybatis的使用中我们一般会去掉_,并且除第一个单词外的其他单词首字母均大写,这里都做了相应的处理。
(2) 选取表
(3)生成元数据代码
(4)编译元数据
4、元数据生成代码
(1)配置
这里需要修改的就是存放模板的位置以及包名(包名和项目的结构一样即可)
模板:这里的模板是根据公司项目需要使用的框架来进行配置的,我们公司这个项目使用的是Spring cloud框架,每个服务使用的是Spring boot
这里以provider层的entity为例,数据都是以变量的形式来存在的
package ${base-package}.entity;
import com.dmsdbj.cloud.tool.business.BaseEntity;
import lombok.*;
import lombok.experimental.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import javax.persistence.*;
import java.io.Serializable;
#foreach ($field in ${bean.fields})
#if(${field}!="id" && ${field}!="operator" && ${field}!="isDelete" && ${field}!="remark" && ${field}!="createTime" && ${field}!="updateTime" && ${field.type}=="Date")
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
#break
#end
#end
/**
* ${bean.Uname}ΚµΜε
* ${bean.alias}
*
* @author ${author}
* @version 0.0.1
* @since 0.0.1 ${date}
*/
@ApiModel(value = "${bean.Uname}Entity:${bean.alias}")
@NoArgsConstructor
@Data
@Accessors(chain = true)
@ToString(callSuper = true)
@Entity
@Table(name = "${bean.table}")
public class ${bean.Uname}Entity extends BaseEntity implements Serializable{
#foreach ($field in ${bean.fields})
#if(${field}!="id" && ${field}!="operator" && ${field}!="isDelete" && ${field}!="remark" && ${field}!="createTime" && ${field}!="updateTime" && ${field}!="creator")
/**
* ${field.alias}
*/
#if(${field.type}=="Date")
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
)
#end
@ApiModelProperty(value = "${field.alias}",required = ${field.isRequired})
@Column(name = "${field.column}")
private ${field.type} ${field};
#end
#end
}
(2)从元数据生成代码
这里就是根据模板配置的生成的相应代码!大功告成啦!