Mybatis-Plus -01 Mybatis-Plus入门

news2024/9/21 16:17:28

Mybatis-Plus入门

  • 1 Mybatis-Plus
    • 1.1 Mybatis-Plus简介
    • 1.2 Mybatis-Plus特性
    • 1.3 Mybatis-Plus框架结构
    • 1.1 Mybatis-Plus简介
    • 1.2 Mybatis-Plus特性
    • 1.3 Mybatis-Plus框架结构
  • 2 Mybatis-Plus 快速入门
    • 2.1 数据库准备
    • 2.2 导入mybatis-plus依赖
    • 2.3 Spring整合MP
    • 2.4 编写实体类
    • 2.5 编写Mapper接口
    • 2.5 测试
    • 1.1 Mybatis-Plus简介
    • 1.2 Mybatis-Plus特性
    • 1.3 Mybatis-Plus框架结构
  • 2 Mybatis-Plus 快速入门
    • 2.1 数据库准备
    • 2.2 导入mybatis-plus依赖
    • 2.3 Spring整合MP
    • 2.4 编写实体类
    • 2.5 编写Mapper接口
    • 2.5 测试
  • 2 Mybatis-Plus 快速入门
    • 2.1 数据库准备
    • 2.2 导入mybatis-plus依赖
    • 2.3 Spring整合MP
    • 2.4 编写实体类
    • 2.5 编写Mapper接口
    • 2.5 测试

1 Mybatis-Plus

1.1 Mybatis-Plus简介

MyBatis-Plus (opens new window)(简称 MP)是一个 **MyBatis (opens new window)**的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

1.2 Mybatis-Plus特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

1.3 Mybatis-Plus框架结构

框架结构
# 1 Mybatis-Plus

1.1 Mybatis-Plus简介

MyBatis-Plus (opens new window)(简称 MP)是一个 **MyBatis (opens new window)**的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

1.2 Mybatis-Plus特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

1.3 Mybatis-Plus框架结构

框架结构
请添加图片描述
  |

2 Mybatis-Plus 快速入门

2.1 数据库准备

来自Mybatis-Plus官方的案例数据准备资料

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
	id BIGINT(20) NOT NULL COMMENT '主键ID',
	name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
	age INT(11) NULL DEFAULT NULL COMMENT '年龄',
	email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY (id)
);

DELETE FROM user;

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

2.2 导入mybatis-plus依赖

  • mybatis-plus依赖 mybatis-plus
<!--   mybatis-plus依赖     -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.4.2</version>
</dependency>

2.3 Spring整合MP

  • 配置Druid数据源
  • 配置Mybatis-plus的SqlSessionFactoryBean
  • 配置Mapper扫描
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置Druid数据源  -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<!-- 配置Mybatis-plus的SqlSessionFactoryBean  -->
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <!-- 加载mybatis配置 -->
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>


<!-- 配置Mapper扫描  -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.ying.mapper"/>
</bean>

2.4 编写实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    private Integer age;
    private String email;
}

2.5 编写Mapper接口

继承自BaseMapper:BaseMapper封装了基本的CRUD

//BaseMapper封装了基本的CRUD
public interface UserMapper extends BaseMapper<User> {
}

2.5 测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class MPTest {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void testMP(){
        List<User> userList = userMapper.selectList(null);
        userList.forEach(System.out::println);
    }
}

1.1 Mybatis-Plus简介

MyBatis-Plus (opens new window)(简称 MP)是一个 **MyBatis (opens new window)**的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

1.2 Mybatis-Plus特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

1.3 Mybatis-Plus框架结构

框架结构

2 Mybatis-Plus 快速入门

2.1 数据库准备

来自Mybatis-Plus官方的案例数据准备资料

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
	id BIGINT(20) NOT NULL COMMENT '主键ID',
	name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
	age INT(11) NULL DEFAULT NULL COMMENT '年龄',
	email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY (id)
);

DELETE FROM user;

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

2.2 导入mybatis-plus依赖

  • mybatis-plus依赖 mybatis-plus
<!--   mybatis-plus依赖     -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.4.2</version>
</dependency>

2.3 Spring整合MP

  • 配置Druid数据源
  • 配置Mybatis-plus的SqlSessionFactoryBean
  • 配置Mapper扫描
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置Druid数据源  -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<!-- 配置Mybatis-plus的SqlSessionFactoryBean  -->
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <!-- 加载mybatis配置 -->
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>


<!-- 配置Mapper扫描  -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.ying.mapper"/>
</bean>

2.4 编写实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    private Integer age;
    private String email;
}

2.5 编写Mapper接口

继承自BaseMapper:BaseMapper封装了基本的CRUD

//BaseMapper封装了基本的CRUD
public interface UserMapper extends BaseMapper<User> {
}

2.5 测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class MPTest {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void testMP(){
        List<User> userList = userMapper.selectList(null);
        userList.forEach(System.out::println);
    }
}
 |

2 Mybatis-Plus 快速入门

2.1 数据库准备

来自Mybatis-Plus官方的案例数据准备资料

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
	id BIGINT(20) NOT NULL COMMENT '主键ID',
	name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
	age INT(11) NULL DEFAULT NULL COMMENT '年龄',
	email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY (id)
);

DELETE FROM user;

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

2.2 导入mybatis-plus依赖

  • mybatis-plus依赖 mybatis-plus
<!--   mybatis-plus依赖     -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.4.2</version>
</dependency>

2.3 Spring整合MP

  • 配置Druid数据源
  • 配置Mybatis-plus的SqlSessionFactoryBean
  • 配置Mapper扫描
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置Druid数据源  -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<!-- 配置Mybatis-plus的SqlSessionFactoryBean  -->
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <!-- 加载mybatis配置 -->
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>


<!-- 配置Mapper扫描  -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.ying.mapper"/>
</bean>

2.4 编写实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    private Integer age;
    private String email;
}

2.5 编写Mapper接口

继承自BaseMapper:BaseMapper封装了基本的CRUD

//BaseMapper封装了基本的CRUD
public interface UserMapper extends BaseMapper<User> {
}

2.5 测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class MPTest {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void testMP(){
        List<User> userList = userMapper.selectList(null);
        userList.forEach(System.out::println);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/440774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

i.MX8MP平台开发分享(gicv3篇)-- set_handle_irq及中断路由过程分析

专栏目录&#xff1a;专栏目录传送门 平台内核i.MX8MP5.15.71 文章目录 set_handle_irqhard中断入口 set_handle_irq(gic_handle_irq);set_handle_irq 这个函数的功能很简单&#xff0c;将gic_handle_irq设置为中断处理函数。在发生中断异常后&#xff0c;内核就会切入到这个…

060201面积-定积分在几何学上的应用-定积分的应用

文章目录 1 平面图形的面积1.1 直角坐标情形1.2 极坐标情形1.2.1 极坐标的定义1.1.2 曲边扇形的面积 结语 1 平面图形的面积 1.1 直角坐标情形 ①平面图形由 y f ( x ) , y 0 , x a , y b yf(x),y0,xa,yb yf(x),y0,xa,yb围成图像的面积&#xff0c;如下图1.1-1所示&#…

防洪决策指挥系统(Axure高保真原型)

使用Axure制作的rp高保真原型防洪决策指挥系统可用于行业参考、实际业务需求开发、学习交流使用&#xff0c;本原型需求可以作为开发使用&#xff0c;业务需求均为作者本人行业经验。本系统包括水系展示系统、城区调度决策系统、实时监测预警和防洪调度四大功能模块的界面。 原…

MICCAI 2023 FLARE国际竞赛:打造腹部泛癌CT分割Foundation Models

竞赛官网 CodaLab - Competitionhttps://codalab.lisn.upsaclay.fr/competitions/12239 背景介绍 腹部器官是相当常见的患癌部位&#xff0c;例如结直肠癌和胰腺癌&#xff0c;分别位列癌症死亡率排名的第二位和第三位。Computed tomography (CT) 成像可以为医生提供重要的诊…

前端错误合集

Uncaught Reference Error: xx is not defined 未捕获的引用错误&#xff1a;未定义xx 原因 1.关键字写错了 解决办法 1.修改成正确的关键字 NAN 计算错误 原因 计算时数据类型不同 解决办法 使用数据类型相同的数据进行计算 Uncaught SyntaxError: Invalid left-h…

计算广告(十四)

营销是一个涉及产品、服务或品牌从概念到消费者的全过程的商业活动。它包括分析市场需求、识别潜在消费者、制定和实施策略以满足他们的需求、创造价值和实现销售。营销的目标是在满足客户需求的同时&#xff0c;实现企业的利润和业务增长。 营销涉及以下几个关键环节&#xf…

vim编辑器的使用介绍

文章目录 vim编辑器的使用介绍vim的缓存、恢复与打开时的警告信息vim的额外功能可视化区块多文件编辑多窗口功能vim的关键词补全功能vim环境设置与记录&#xff1a;~/.vimrc、~/.viminfovim的环境设置参数 vim常用的命令示意图 其他vim使用注意事项中文编码的问题DOS与Linux的换…

【PyTorch】课堂测试一:线性回归的求解

作者&#x1f575;️‍♂️&#xff1a;让机器理解语言か 专栏&#x1f387;&#xff1a;PyTorch 描述&#x1f3a8;&#xff1a;PyTorch 是一个基于 Torch 的 Python 开源机器学习库。 寄语&#x1f493;&#xff1a;&#x1f43e;没有白走的路&#xff0c;每一步都算数&#…

如何在自定义数据集上训练YOLOv8的各个模型

YOLOv8效果图&#xff08;可以应用到图片和视频&#xff09;&#xff1a; 四个模式命令 yolo taskdetect modepredict modelmodel/yolov8n.pt sourceinput/test.mp4 showTrueyolo tasksegment modepredict modelmodel/yolov8x-seg.pt sourceinput/zidane.jpg showTrueyolo tas…

JavaSE-part2

文章目录 Day07 IO流1.IO流1.1背景介绍1.2File类1.2.1常用方法 1.3IO流原理1.4IO流的分类1.4.1InputStream 字节输入流1.4.1.1FileInputStream1.4.1.2FileOutPutStream1.4.1.3练习 1.4.2Reader and Writer1.4.2.1FileReader1.4.2.2FileWriter 1.4.3节点流和处理流1.4.3.1处理流…

MSNet网络结构与代码搭建深入解读

模型结构 1、首先,将多光谱遥感图像的波段分为可见光和不可见光两组,然后进行分组同步特征提取; 代码 先看总体结构,主代码 __init__定义了声明MSNet模型有哪些类,MSNet的forward方法规定数据如何在层之间流动。 1、首先是获得图片的输入尺寸input_size = (rgbnnd.size(…

Python数据结构与算法-动态规划(钢条切割问题)

一、动态规划&#xff08;DP&#xff09;介绍 1、从斐波那契数列看动态规划 &#xff08;1&#xff09;问题 斐波那契数列递推式&#xff1a; 练习&#xff1a;使用递归和非递归的方法来求解斐波那契数列的第n项 &#xff08;2&#xff09;递归方法的代码实现 import time # 递…

Spark----RDD(弹性分布式数据集)

RDD 文章目录 RDDRDD是什么&#xff1f;为什么需要RDD&#xff1f;RDD的五大属性WordCount中的RDD的五大属性如何创建RDD&#xff1f;RDD的操作两种基本算子/操作/方法/API分区操作重分区操作聚合操作四个有key函数的区别 关联操作排序操作 RDD的缓存/持久化cache和persistchec…

Java学习-MySQL-DQL数据查询-联表查询JOIN

Java学习-MySQL-DQL数据查询-联表查询JOIN 1.分析需求&#xff0c;查找那些字段 2.分析查询的字段来自哪些表 3.确定使用哪种连接查询 4.确定交叉点 5.确定判断条件 操作描述inner join返回左右表的交集left join返回左表&#xff0c;即使右表没有right join返回右表&#xf…

iptables深度总结--基础篇

iptables 五表五链 链&#xff1a;INPUT OUTPUT FORWARD PREROUTING POSTROUTING 表&#xff1a;filter、nat、mangle、raw、security 数据报文刚进网卡&#xff0c;还没有到路由表的时候&#xff0c;先进行了prerouting&#xff0c;进入到路由表&#xff0c;通过目标地址判…

FFMPEG 关于smaple_fmts的理解及ffplay播放PCM

问题 当我将一个aac的音频文件解码为原始的PCM数据后&#xff0c;使用ffplay播放测试是否成功时&#xff0c;需要提供给ffplay 采样率&#xff0c;通道数&#xff0c;PCM的格式类型 3个参数&#xff0c;否则无法播放&#xff01; 所以使用ffprobe 查看原来的aac文件信息&…

Python手写板 画图板 签名工具

程序示例精选 Python手写板 画图板 签名工具 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<Python手写板 画图板 签名工具>>编写代码&#xff0c;代码整洁&#xff0c;规则&am…

别再回答面试官,toFixed采用的是四舍五入啦!

四舍五入大家都知道&#xff0c;但你知道银行家舍入法么&#xff1f;你知道JS里的toFixed实现用的是哪种吗&#xff1f; 前两天我写了篇《0.1 0.2 不等于 0.3&#xff1f;原来是因为这个》&#xff0c;大概就是说&#xff0c;0.1 0.2不等于0.3是因为浮点数精度问题。 结果在…

LinkedList 的特点及优缺点

现在来讲 LinkedList LinkedList 是链表集合&#xff0c;基于链表去存储数据&#xff0c;每一个数据视作一个节点 private static class Node<E> {// 存放的数据E item;// 下一个节点Node<E> next;// 上一个节点Node<E> prev;Node(Node<E> prev, E ele…

【unity实战】2D横版实现人物移动跳跃2——用对象池设计制作冲锋残影的效果(包含源码)

基于上一篇人物移动二段跳进一步优化完善 先看看最终效果 什么是对象池? 在Unity中,对象池是一种重复使用游戏对象的技术。使用对象池的好处是可以减少游戏对象的创建和销毁,从而提高游戏的性能。如果不使用对象池,每次需要创建游戏对象时,都需要调用Unity的Instantiate函…