返回

MyBatis-plus将数据库表转换为Java映射

发布时间:2023-02-15 04:39:58 232
# java# spring# mysql# apache# 扫描

概述

编程语言:Java

根据ORM思想,编程语言操作数据库时,需将数据库表映射为对应编程语言结构。而对于繁多的数据库表及字段,手动转换耗时较长,故Mybatis-plus提供了可自动将数据库表映射为Java对象的方法,既mybatis-plus-generator。

官网资料

  1. 官网地址: ​​https://baomidou.com/​​
  2. 资料使用流程:

MyBatis-plus将数据库表转换为Java映射_代码生成器

MyBatis-plus将数据库表转换为Java映射_数据库映射_02

MyBatis-plus将数据库表转换为Java映射_代码生成器_03

MyBatis-plus将数据库表转换为Java映射_数据库映射_04

代码

根据官网提示,创建代码生成器项目,然后配置数据库参数、模板文件、生成器代码等。

pom文件引入依赖

<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starterartifactId>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<version>1.18.24version>
dependency>
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plusartifactId>
<version>3.5.3.1version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.30version>
dependency>

<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-generatorartifactId>
<version>3.5.3.1version>
dependency>
<dependency>
<groupId>org.apache.velocitygroupId>
<artifactId>velocity-engine-coreartifactId>
<version>2.3version>
dependency>
dependencies>

自定义模板文件

从mybatis-plus-generator包中找到entity和mapper模板文件,拷贝到resource下templates目录下,然后自定义成所需格式。

MyBatis-plus将数据库表转换为Java映射_数据库映射_05

MyBatis-plus将数据库表转换为Java映射_数据库映射_06

自定义的entity模板文件如下:

package ${package.Entity};

/*
* $!{table.comment}
*
* @author ${author}
* @since ${date}
*/

#foreach($pkg in ${table.importPackages})
import ${pkg};
#end
import lombok.*;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ${entity}
{
## ---------- BEGIN 字段循环遍历 ----------
#foreach($field in ${table.fields})
#if(${field.keyFlag})
#set($keyPropertyName=${field.propertyName})
#end
#if("$!field.comment" != "")
//${field.comment}
#end
private ${field.propertyType} ${field.propertyName};
#end
## ---------- END 字段循环遍历 ----------
}

自定义的mapper模板文件如下:

package ${package.Mapper};

/*
* $!{table.comment} Mapper 接口
*
* @author ${author}
* @since ${date}
*/

import ${package.Entity}.${entity};
import ${superMapperClassPackage};
#if(${mapperAnnotationClass})
import ${mapperAnnotationClass.name};
#end
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface ${table.mapperName} extends ${superMapperClass}<${entity}>
{
}

编写代码生成器代码

package com.zkfr.mybatisplusautogenerator;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;


public class MybatisPlusAutoGeneratorApplication2
{
public static void main(String[] args)
{
FastAutoGenerator.create("jdbc:mysql://192.168.1.112:3306/test","test","test123456")
.globalConfig(builder -> {
builder.author("zkfr")
.outputDir( System.getProperty("user.dir") + "/src/main/java" )
.dateType(DateType.ONLY_DATE );
})
.packageConfig(builder -> {
builder.parent("com.zkfr")
.moduleName("generate_code")
.entity( "pojo" )
.mapper( "dao" );
})
.strategyConfig(builder -> {
builder.entityBuilder()
.enableLombok()
.naming(NamingStrategy.no_change);

builder.mapperBuilder()
.formatMapperFileName( "%sDao" );
})
.templateConfig( builder -> {
builder.entity( "/templates/entity.java.vm" )
.mapper( "/templates/mapper.java.vm" );
} )
.execute();
}
}

运行代码

运行代码后可以看到,生成了很多代码,本文目标所需dao和pojo项也在其中。

注:每次执行前,需将上次生成的结果删除,因为生成的代码放到了src目录下,会被程序扫描到。

MyBatis-plus将数据库表转换为Java映射_代码生成器_07

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线