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

MyBatis-Plus 入门:从零开始掌握高效数据库操作利器

admin2个月前 (06-24)Java资讯12

MyBatis-Plus 入门:从零开始掌握高效数据库操作利器

一、MyBatis-Plus 简介

MyBatis-Plus 是一款优秀的持久层框架,它是对 MyBatis 的增强,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus 集成了诸多实用功能,如代码生成、自动填充、乐观锁、动态表名等,大大降低了数据库操作的开发成本。

二、MyBatis-Plus 入门步骤

1. 环境搭建

(1)创建一个 Spring Boot 项目,引入 MyBatis-Plus 依赖。

(2)在 pom.xml 文件中添加以下依赖:

```xml

com.baomidou

mybatis-plus-boot-starter

3.4.3.4

```

(3)在 application.properties 或 application.yml 文件中配置数据库信息:

```properties

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC

spring.datasource.username=root

spring.datasource.password=root

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

```

2. 创建实体类

根据数据库表结构,创建对应的实体类,并使用 `@TableName` 注解指定表名:

```java

@Table(name = "user")

public class User {

@Id

private Long id;

private String name;

private Integer age;

// ... 其他属性和 getter/setter 方法

}

```

3. 创建 Mapper 接口

创建一个继承 `BaseMapper` 的接口,该接口包含了 MyBatis-Plus 提供的基本操作方法:

```java

public interface UserMapper extends BaseMapper {

}

```

4. 使用 MyBatis-Plus 进行数据库操作

(1)插入数据

```java

User user = new User();

user.setName("张三");

user.setAge(20);

userMapper.insert(user);

```

(2)查询数据

```java

User user = userMapper.selectById(1L);

System.out.println(user.getName());

```

(3)更新数据

```java

User user = userMapper.selectById(1L);

user.setName("李四");

userMapper.updateById(user);

```

(4)删除数据

```java

userMapper.deleteById(1L);

```

5. 代码生成器

MyBatis-Plus 提供了代码生成器,可以快速生成实体类、Mapper 接口、Mapper XML 等文件。使用代码生成器,只需配置数据库信息、表名、实体类名称等参数,即可一键生成所需代码。

(1)添加代码生成器依赖

```xml

com.baomidou

mybatis-plus-generator

3.4.3.4

```

(2)配置代码生成器

```java

public class CodeGenerator {

public static void main(String[] args) {

AutoGenerator mpg = new AutoGenerator();

// 全局配置

mpg.setGlobalConfig(new GlobalConfig().outputDir(System.getProperty("user.dir") + "/src/main/java")

.author("作者名称")

.fileOverride()

.disableOpenDir()

.commentDate("yyyy-MM-dd HH:mm:ss"));

// 数据源配置

mpg.setDataSource(new DataSourceConfig().url("jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC")

.driverName("com.mysql.cj.jdbc.Driver").username("root").password("root"));

// 包配置

mpg.setPackageInfo(new PackageConfig().parent("com.example.demo").entity("entity").mapper("mapper").xml("mapper"));

// 策略配置

mpg.setStrategy(new Strategy().addInclude("user") // 设置需要生成的表名

.entityLombokModel() // 使用 Lombok

.enableActiveRecord() // 使用乐观锁

.controllerMappingHyphenStyle() // 实体类命名方式为驼峰转下划线

.controllerName("%sController")

.mapperName("%sMapper")

.xmlName("%sMapper"));

mpg.execute();

}

}

```

执行 `CodeGenerator` 类,即可生成所需代码。

三、MyBatis-Plus 高级功能

1. 乐观锁

MyBatis-Plus 支持乐观锁,通过在实体类中添加 `@Version` 注解,即可实现乐观锁功能。

```java

@Version

private Integer version;

```

2. 动态表名

MyBatis-Plus 支持动态表名,通过在 Mapper 接口中添加 `@TableName` 注解,并传入动态表名,即可实现动态表名功能。

```java

@TableName("user")

public interface UserMapper extends BaseMapper {

}

```

3. 代码生成器自定义模板

MyBatis-Plus 代码生成器支持自定义模板,可以自定义实体类、Mapper 接口、Mapper XML 等文件的生成内容。

4. 分页插件

MyBatis-Plus 集成了分页插件,通过添加分页插件依赖,即可实现分页功能。

```xml

com.baomidou

mybatis-plus-extension

3.4.3.4

```

```java

Page page = new Page<>(1, 10);

page = userMapper.selectPage(page, Wrappers.query().like("name", "张三"));

```

四、总结

MyBatis-Plus 是一款功能强大的持久层框架,它简化了数据库操作的开发过程,提高了开发效率。通过本文的介绍,相信你已经对 MyBatis-Plus 有了一定的了解。在实际开发中,可以根据项目需求,灵活运用 MyBatis-Plus 的各项功能,为项目带来更多便利。

相关文章

Java NIO:深入浅出,解锁高效网络编程新境界

Java NIO:深入浅出,解锁高效网络编程新境界

一、引言 Java NIO(非阻塞I/O)是Java在JDK 1.4中引入的一种新的I/O模型。与传统的Java I/O相比,NIO在处理大量并发连接时具有更高的性能和效率。本文将深入浅出地介绍Ja...

Java函数式接口:重构你的编程思维,迈向函数式编程

Java函数式接口:重构你的编程思维,迈向函数式编程

一、引言 在Java的世界里,函数式编程逐渐成为了一种趋势。函数式编程强调使用纯函数和不可变数据来构建程序,这种编程范式在很多场景下都能带来更高的效率、可读性和可维护性。而函数式接口作为Java 8...

Java行业深度解析:流程引擎在项目开发中的应用与实践

Java行业深度解析:流程引擎在项目开发中的应用与实践

一、引言 随着互联网技术的飞速发展,企业对于业务流程的优化和自动化需求日益增长。在这个过程中,流程引擎作为一种强大的技术手段,逐渐成为了Java行业的热门话题。本文将从实际项目开发的角度,深入分析流...

深度解析:Hibernate的核心技巧与策略

深度解析:Hibernate的核心技巧与策略

拥抱Hibernate,解锁Java持久层开发新境界——深度解析Hibernate核心技巧与最佳实践...

Seata:揭秘分布式事务的“黑科技”与Java应用实践

Seata:揭秘分布式事务的“黑科技”与Java应用实践

随着互联网的快速发展,分布式系统已经成为现代架构的主流。在分布式系统中,事务管理是一个至关重要的环节。如何保证分布式事务的原子性、一致性、隔离性和持久性,成为了开发者们关注的焦点。而Seata,作为...

Java行业中的短信验证技术解析:实战技巧与行业洞察

Java行业中的短信验证技术解析:实战技巧与行业洞察

一、短信验证在Java行业中的重要性 在当今的互联网时代,用户注册、登录、支付等场景中,短信验证已经成为一种必不可少的身份验证方式。对于Java开发者而言,掌握短信验证技术不仅能够提高系统的安全性,...