MyBatisPlus快速上手

文章目录

  • [1 ORM](#1 ORM)
    • [1.1 持久化](#1.1 持久化)
    • [1.2 ORM原理](#1.2 ORM原理)
    • [1.3 常用的ORM框架](#1.3 常用的ORM框架)
  • [2 MyBatis](#2 MyBatis)
    • [2.1 添加依赖](#2.1 添加依赖)
    • [2.2 全局配置](#2.2 全局配置)
      • [2.2.1 配置数据库相关信息](#2.2.1 配置数据库相关信息)
      • [2.2.2 添加@MapperScan注解](#2.2.2 添加@MapperScan注解)
    • [2.3 MyBatis CRUD注解](#2.3 MyBatis CRUD注解)
    • [2.4 CRUD操作](#2.4 CRUD操作)
    • [2.5 MybatisPlus注解](#2.5 MybatisPlus注解)

1 ORM

1.1 持久化

  • 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
  • 持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等。

1.2 ORM原理

  • ORM(Object Relational Mapping,对象关系映射)是为了解决面向对象与关系数据库存在的互不匹配现象的一种技术。
  • ORM通过使用描述对象和数据库之间映射的元数据将程序中的对象自动持久化到关系数据库中。
  • ORM框架的本质是简化编程中操作数据库的编码,它的作用是在关系型数据库和对象之间作一个映射,这样在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。

1.3 常用的ORM框架

  • MyBatis:半自动的ORM持久层框架,内部封装了JDBC。
  • MyBatisPlus:Mybatis的增强工具,它在Mybatis的基础上做了增强。

2 MyBatis

  • MyBatis是一款优秀的数据持久层ORM框架,被广泛地应用于应用系统。
  • MyBatis能够非常灵活地实现动态SQL,可以使用XML或注解来配置和映射原生信息,能够轻松地将Java的POJO(Plain Ordinary Java Object,普通的Java对象)与数据库中的表和字段进行映射关联。
  • MyBatis-Plus是一个 MyBatis 的增强工具,在 MyBatis 的基础上做了增强,简化了开发。

2.1 添加依赖

添加依赖到pom.xml。

xml 复制代码
<!--MyBatisPlus依赖-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>
<!--mysql驱动依赖-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
</dependency>
<!--数据连接池druid-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.20</version>
</dependency>

2.2 全局配置

2.2.1 配置数据库相关信息

java 复制代码
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

2.2.2 添加@MapperScan注解

在 SpringBoot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹。

java 复制代码
@SpringBootApplication
@MapperScan("com.xx.mapper")
public class MybatisplusDemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(MybatisplusDemoApplication.class, args);
	}
}

2.3 MyBatis CRUD注解

MyBatis用于数据表CRUD操作常见注解如下:

注解 功能
@Insert 实现插入
@Update 实现更新
@Delete 实现删除
@Select 实现查询
@Result 实现结果集封装
@Results 可以与@Result 一起使用,封装多个结果集
@One 实现一对一结果集封装
@Many 实现一对多结果集封装

2.4 CRUD操作

java 复制代码
@Mapper
public interface UserMapper {
	@Insert("insert into user values(#{id},#{username},#{password},#{birthday})")
	int add(User user);
	
	@Update("update user set username=#{username},password=#{password},birthday=#{birthday} where id=#{id}")
	int update(User user);
	
	@Delete("delete from user where id=#{id}")
	int delete(int id);
	
	@Select("select * from user where id=#{id}")
	User findById(int id);
	
	@Select("select * from user")
	List<User> getAll();
}

2.5 MybatisPlus注解

  • @TableName,当表名与实体类名称不一致时,可以使用@TableName注解进行关联。
  • @TableField,当表中字段名称与实体类属性不一致时,使用@TableField进行关联。
  • @TableId,用于标记表中的主键字段,MybatisPlus也提供了主键生成策略。
相关推荐
惜分飞4 小时前
ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理--惜分飞
数据库·oracle
chian-ocean4 小时前
CANN 生态进阶:利用 `profiling-tools` 优化模型性能
数据库·mysql
m0_550024634 小时前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
AC赳赳老秦4 小时前
代码生成超越 GPT-4:DeepSeek-V4 编程任务实战与 2026 开发者效率提升指南
数据库·数据仓库·人工智能·科技·rabbitmq·memcache·deepseek
啦啦啦_99994 小时前
Redis-2-queryFormat()方法
数据库·redis·缓存
80530单词突击赢4 小时前
JavaWeb进阶:SpringBoot核心与Bean管理
java·spring boot·后端
玄同7655 小时前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
吾日三省吾码5 小时前
别只会“加索引”了!这 3 个 PostgreSQL 反常识优化,能把性能和成本一起打下来
数据库·postgresql
chian-ocean5 小时前
百万级图文检索实战:`ops-transformer` + 向量数据库构建语义搜索引擎
数据库·搜索引擎·transformer
long3165 小时前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法