当前位置:首页 > Java资讯 > 正文内容

MyBatis-Plus代码生成器:轻松实现高效数据库操作

admin3周前 (06-24)Java资讯5

MyBatis-Plus代码生成器:轻松实现高效数据库操作

一、MyBatis-Plus简介

MyBatis-Plus是一款基于MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它支持自定义SQL、自动填充、乐观锁、动态表名等功能,极大地提升了开发效率。而在MyBatis-Plus中,代码生成器是一个非常重要的功能,可以帮助开发者快速生成实体类、Mapper接口、Mapper XML等代码,从而降低开发成本。

二、MyBatis-Plus代码生成器概述

MyBatis-Plus代码生成器是基于MyBatis-Plus官方提供的代码生成器进行封装和扩展,旨在提高代码生成效率,满足不同场景下的开发需求。它支持多种数据库、多种模板引擎,并提供丰富的配置项,让开发者可以轻松定制代码生成规则。

三、MyBatis-Plus代码生成器特点

1. 支持多种数据库:MyBatis-Plus代码生成器支持MySQL、Oracle、SQL Server、PostgreSQL等多种数据库,满足不同项目的需求。

2. 丰富的配置项:代码生成器提供丰富的配置项,如字段类型、字段名称、表名、实体类名称、Mapper接口名称、Mapper XML名称等,开发者可以根据实际需求进行配置。

3. 模板引擎支持:代码生成器支持多种模板引擎,如Freemarker、Velocity、Beetl等,方便开发者根据项目需求选择合适的模板引擎。

4. 高度可定制:开发者可以根据实际需求对代码生成器进行扩展,如自定义字段类型转换、自定义实体类注解等。

5. 生成多种代码:代码生成器可以生成实体类、Mapper接口、Mapper XML、Service接口、Service实现类、Controller等代码,满足不同层级的开发需求。

四、MyBatis-Plus代码生成器使用方法

1. 添加依赖

在项目的pom.xml文件中添加MyBatis-Plus和代码生成器的依赖:

```xml

com.baomidou

mybatis-plus-boot-starter

3.4.3.4

com.baomidou

mybatis-plus-generator

3.4.3.4

```

2. 配置数据源

在application.properties或application.yml文件中配置数据源信息:

```properties

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8

spring.datasource.username=root

spring.datasource.password=root

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

```

3. 配置代码生成器

在application.yml文件中配置代码生成器:

```yaml

mybatis-plus:

generator:

output-dir: src/main/java

author: yourName

file-name: ${tablePrefix}_${tableName}

mapper-locations: src/main/java/mapper/

xml-output-dir: src/main/resources/mapper/

service-locations: src/main/java/service/

service-impl-locations: src/main/java/service/impl/

controller-locations: src/main/java/controller/

base-result-map-locations: src/main/resources/mapper/common/

base-mapper-locations: src/main/resources/mapper/common/

db-config:

type: com.baomidou.mybatisplus.extension.parsers.MySqlParser

config:

dbType: mysql

strategy:

entity-lower-case: true

entity-table-name: true

mapper-name: ${tablePrefix}Mapper

mapper-output-dir: src/main/java/mapper/

xml-output-dir: src/main/resources/mapper/

service-name: ${tablePrefix}Service

service-impl-name: ${tablePrefix}ServiceImpl

controller-name: ${tablePrefix}Controller

controller-annotations: RestController

naming-strategy:

name: custom

custom:

entity: CustomEntityNamingStrategy

column: CustomColumnNamingStrategy

mapper: CustomMapperNamingStrategy

xml: CustomXmlNamingStrategy

service: CustomServiceNamingStrategy

service-impl: CustomServiceImplNamingStrategy

controller: CustomControllerNamingStrategy

global-config:

id-type: auto

db-config:

table-prefix: t_

```

4. 生成代码

在项目中创建一个Java类,用于启动代码生成器:

```java

import com.baomidou.mybatisplus.generator.AutoGenerator;

import com.baomidou.mybatisplus.generator.config.DataSourceConfig;

import com.baomidou.mybatisplus.generator.config.GlobalConfig;

import com.baomidou.mybatisplus.generator.config.PackageConfig;

import com.baomidou.mybatisplus.generator.config.StrategyConfig;

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

public class CodeGenerator {

public static void main(String[] args) {

// 创建代码生成器

AutoGenerator mpg = new AutoGenerator();

// 配置数据源

DataSourceConfig dsc = new DataSourceConfig();

dsc.setUrl("jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8");

dsc.setDriverName("com.mysql.cj.jdbc.Driver");

dsc.setUsername("root");

dsc.setPassword("root");

mpg.setDataSource(dsc);

// 配置全局配置

GlobalConfig gc = new GlobalConfig();

gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java");

gc.setAuthor("yourName");

gc.setOpen(false);

mpg.setGlobalConfig(gc);

// 配置包信息

PackageConfig pc = new PackageConfig();

pc.setModuleName("module");

pc.setParent("com.example.project");

mpg.setPackageInfo(pc);

// 配置策略

StrategyConfig strategy = new StrategyConfig();

strategy.setInclude("table_name"); // 设置要生成的表名

strategy.setNaming(NamingStrategy.underline_to_camel);

strategy.setColumnNaming(NamingStrategy.underline_to_camel);

mpg.setStrategy(strategy);

// 执行生成

mpg.execute();

}

}

```

5. 运行程序

运行CodeGenerator类,代码生成器会根据配置生成相应的代码。

五、总结

MyBatis-Plus代码生成器是一款非常实用的工具,可以帮助开发者快速生成代码,提高开发效率。通过本文的介绍,相信大家对MyBatis-Plus代码生成器有了更深入的了解。在实际开发过程中,合理运用代码生成器,可以大大降低开发成本,提高项目进度。

相关文章

Java语法:深入浅出,掌握编程核心

Java语法:深入浅出,掌握编程核心

一、Java语法概述 Java作为一种广泛应用于企业级应用、Android开发、大数据等领域的编程语言,其语法结构严谨、易于学习。本文将从Java语法的基本概念、核心语法、常用语法等方面进行深入浅出...

Java认证考试:我的备考之路与心得分享

Java认证考试:我的备考之路与心得分享

作为一名拥有10年经验的资深站长和SEO专家,我对Java行业有着深刻的理解和丰富的实践经验。在Java领域,认证考试无疑是一个重要的里程碑,它不仅是对个人技能的认可,更是职业发展的助推器。今天,我...

VisualVM:Java性能监控与调试的得力助手

VisualVM:Java性能监控与调试的得力助手

在Java开发领域,性能监控和调试是每个开发者都会面临的难题。面对庞大的项目代码和复杂的系统架构,如何高效地进行性能分析和问题定位成为了摆在面前的一大挑战。这时,VisualVM这款强大的性能监控与...

Java死信队列:揭秘分布式系统中的守护者

Java死信队列:揭秘分布式系统中的守护者

在分布式系统中,消息队列是保障系统稳定性和解耦的重要组件。然而,消息队列中难免会出现异常情况,如生产者发送的消息因为某些原因未能被消费者正确消费,此时,这些未被消费的消息就被称作“死信”。为了应对这...

Java消息中间件:架构师眼中的“隐秘英雄”

Java消息中间件:架构师眼中的“隐秘英雄”

一、引言 在当今的Java开发领域,消息中间件已经成为了企业级应用架构中不可或缺的一部分。它能够实现分布式系统中各个模块之间的解耦,提高系统的可扩展性和稳定性。然而,对于许多开发者来说,消息中间件仍...

深入剖析 Prometheus:Java 监控利器详解与实践

深入剖析 Prometheus:Java 监控利器详解与实践

一、引言 在当今这个快速发展的互联网时代,应用程序的稳定性和性能监控变得越来越重要。对于 Java 应用来说,Prometheus 作为一个开源的监控和报警工具,凭借其强大的功能、灵活的架构和良好的...