Mybatis自动生成实体与Mapper工具类 您所在的位置:网站首页 mybatis注解插入 Mybatis自动生成实体与Mapper工具类

Mybatis自动生成实体与Mapper工具类

#Mybatis自动生成实体与Mapper工具类| 来源: 网络整理| 查看: 265

随着MyBatis越来越深入人心,那么在使用Mybatis的时候,最最最麻烦的,莫过于是写Mapper。 幸好,万能的程序猿们已经开发出一套方便的工具,根据已有的数据库表来生成对应的JavaBean以及相应的一些Mapper

项目下载地址 [https://download.csdn.net/download/sail331x/13606703]

两个关键类 1、Generator类,程序入口

import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;import java.io.InputStream;import java.util.ArrayList;import java.util.List;/** * 数据库实体类生成器 * * @Autor Shadow 2020/12/9 * @Date 2020-12-09 10:32:55 */public class Generator { public static void main(String[] args) throws Exception { //MBG 执行过程中的警告信息 List warnings = new ArrayList(); //当生成的代码重复时,覆盖原代码 boolean overwrite = true; //读取我们的 MBG 配置文件 InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration cOnfig= cp.parseConfiguration(is); is.close(); DefaultShellCallback callback = new DefaultShellCallback(overwrite); //创建 MBG MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); //执行生成代码 myBatisGenerator.generate(null); //输出警告信息 for (String warning : warnings) { System.out.println(warning); } }}

2、MyCommentGenerator注解生成类

import org.mybatis.generator.api.IntrospectedColumn;import org.mybatis.generator.api.IntrospectedTable;import org.mybatis.generator.api.dom.java.CompilationUnit;import org.mybatis.generator.api.dom.java.Field;import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;import org.mybatis.generator.internal.DefaultCommentGenerator;import org.mybatis.generator.internal.util.StringUtility;import java.util.Properties;/** * 自定义注释生成器 * Created by macro on 2018/4/26. */public class MyCommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX = "Example"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME = "io.swagger.annotations.ApiModelProperty"; /** * 设置用户配置的参数 */ @Override public void addConfigurationProperties(Properties properties) { super.addConfigurationProperties(properties); this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); } /** * 给字段添加注释 */ @Override public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); //根据参数和备注信息判断是否添加备注信息 if (addRemarkComments && StringUtility.stringHasValue(remarks)) {// addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 if (remarks.contains("\"")) { remarks = remarks.replace("\"", "'"); } addFieldJavaDoc(field, remarks); //给model的字段添加swagger注解 field.addJavaDocLine("@ApiModelProperty(value = \"" + remarks + "\")"); } } /** * 给model的字段添加注释 */ private void addFieldJavaDoc(Field field, String remarks) { //文档注释开始 field.addJavaDocLine("/**"); //获取数据库字段的备注信息 String[] remarkLines = remarks.split(System.getProperty("line.separator")); for (String remarkLine : remarkLines) { field.addJavaDocLine(" * " + remarkLine); }// addJavadocTag(field, false); field.addJavaDocLine(" */"); } @Override public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 if (!compilationUnit.isJavaInterface() && !compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)) { compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } }}

3、配置文件 generatorConfig.xml

PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

cOnnectionURL="${jdbc.connectionURL}" userId="${jdbc.username}" password="${jdbc.password}">

targetProject="xxx-project/src/main/java"/>

4、generator.properties文件

jdbc.driverClass=com.mysql.cj.jdbc.Driverjdbc.cOnnectionURL=jdbc:mysql://127.0.0.1:3306/xxxxx?useUnicode=true&characterEncoding=utf-8&serverTimezOne=Asia/Shanghaijdbc.username=rootjdbc.password=123456

5、pom文件 关键依赖(我这里是引入parent-module 所以版本写在其它地方 这里自己找对应版本就好)

io.springfox springfox-swagger-common 2.9.2 com.github.pagehelper pagehelper-spring-boot-starter 1.2.10 com.alibaba druid-spring-boot-starter 1.1.10 org.mybatis.generator mybatis-generator-core 1.3.7 mysql mysql-connector-java 8.0.20

效果

生成的Entity 在这里插入图片描述 2、生成的Mapper 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有