当前位置: 首页 > news >正文

肥西建设局网站凡科建站怎么收费

肥西建设局网站,凡科建站怎么收费,做的网站怎么发布,山东最新传染病疫情通报MyBatis-Plus 是基于 MyBatis 的增强工具,为简化 MyBatis 的开发提供了诸多功能扩展。它的目标是减少重复代码、提高开发效率,提供了 CRUD(Create, Read, Update, Delete)操作的简化方法以及多种实用插件。以下是 MyBatis-Plus 的…

MyBatis-Plus 是基于 MyBatis 的增强工具,为简化 MyBatis 的开发提供了诸多功能扩展。它的目标是减少重复代码、提高开发效率,提供了 CRUD(Create, Read, Update, Delete)操作的简化方法以及多种实用插件。以下是 MyBatis-Plus 的核心插件及其使用介绍:

1. 分页插件(PaginationInterceptor)

分页是开发中常见的需求,MyBatis-Plus 提供了简单易用的分页插件。

配置分页插件

在 Spring Boot 项目中,配置分页插件很简单:

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyBatisPlusConfig {@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
}
分页查询示例
// 使用Page对象进行分页查询
Page<User> page = new Page<>(1, 10);  // 第1页,每页10条数据
IPage<User> userPage = userMapper.selectPage(page, null);

selectPage方法通过 Page 对象自动封装了分页的参数。

2. 乐观锁插件(OptimisticLockerInterceptor)

乐观锁用于在更新数据时避免脏数据的出现,MyBatis-Plus 支持乐观锁插件,它主要通过版本号 version 来控制。

配置乐观锁插件
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyBatisPlusConfig {@Beanpublic OptimisticLockerInterceptor optimisticLockerInterceptor() {return new OptimisticLockerInterceptor();}
}
使用乐观锁

在实体类中增加 @Version 注解标记乐观锁字段,通常是 version 字段。

import com.baomidou.mybatisplus.annotation.Version;
import lombok.Data;@Data
public class User {private Long id;private String name;@Versionprivate Integer version;  // 版本号
}
更新时自动处理版本号
// 假设当前version为1
User user = userMapper.selectById(1L);
user.setName("New Name");
userMapper.updateById(user);  // 执行后,version会自动更新

MyBatis-Plus 会在更新时自动检查 version,如果 version 不匹配,则更新失败。

3. 逻辑删除插件(LogicDelete)

逻辑删除是一种常见的数据处理方式,MyBatis-Plus 支持通过逻辑删除插件将删除操作转换为更新操作,使数据不会真正从数据库中删除。

配置逻辑删除插件

MyBatis-Plus 默认已经支持逻辑删除,无需额外插件配置。只需要在实体类中配置 @TableLogic 注解。

使用逻辑删除
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;@Data
public class User {private Long id;private String name;@TableLogicprivate Integer deleted;  // 逻辑删除字段,1表示已删除,0表示未删除
}
调用逻辑删除
// 调用逻辑删除
userMapper.deleteById(1L);  // 实际上是更新deleted字段为1,而不是物理删除

4. 自动填充插件(MetaObjectHandler)

自动填充插件用于在插入或更新数据时,自动设置一些特定字段的值(如创建时间、更新时间)。

实现自动填充功能

首先需要自定义一个类,实现 MetaObjectHandler 接口,定义填充逻辑。

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.time.LocalDateTime;@Component
public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {// 插入时自动填充字段this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());}@Overridepublic void updateFill(MetaObject metaObject) {// 更新时自动填充字段this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());}
}
实体类中配置自动填充字段
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;import java.time.LocalDateTime;@Data
public class User {private Long id;private String name;@TableField(fill = FieldFill.INSERT)private LocalDateTime createTime;  // 插入时自动填充@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updateTime;  // 插入和更新时自动填充
}

5. SQL 性能分析插件(SqlExplainInterceptor)

为了提高开发效率和排查 SQL 问题,MyBatis-Plus 提供了 SQL 性能分析插件,可以在开发环境中输出执行的 SQL 及其消耗时间。

配置 SQL 性能分析插件
import com.baomidou.mybatisplus.extension.plugins.SqlExplainInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyBatisPlusConfig {@Beanpublic SqlExplainInterceptor sqlExplainInterceptor() {return new SqlExplainInterceptor();}
}

该插件主要用于开发环境,不建议在生产环境中使用。

6. 防止全表更新与删除插件(BlockAttackInterceptor)

MyBatis-Plus 提供了防止全表更新或删除的插件,防止误操作导致整个表的数据被更新或删除。

配置防止全表更新与删除插件
import com.baomidou.mybatisplus.extension.plugins.BlockAttackInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyBatisPlusConfig {@Beanpublic BlockAttackInterceptor blockAttackInterceptor() {return new BlockAttackInterceptor();}
}

启用后,当执行 update(null)delete(null)(即没有 where 条件)时会抛出异常。

7. 多租户插件(TenantLineInnerInterceptor)

多租户插件允许你在多租户环境中为每个 SQL 自动添加租户 ID,以实现数据隔离。

配置多租户插件
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyBatisPlusConfig {@Beanpublic TenantLineInnerInterceptor tenantLineInnerInterceptor() {return new TenantLineInnerInterceptor(new TenantLineHandler() {@Overridepublic Expression getTenantId() {// 实现返回当前租户 ID 的逻辑return new LongValue(1L); // 例如租户 ID 为1}@Overridepublic boolean ignoreTable(String tableName) {// 可以指定某些表不进行多租户处理return "user".equals(tableName);}});}
}

通过这些插件,MyBatis-Plus 可以显著简化开发过程,减少重复代码,提高效率,同时保障安全性和性能。如果需要使用更多插件或自定义功能,MyBatis-Plus 还提供了丰富的扩展接口供开发者使用。


文章转载自:
http://empiriocriticism.c7617.cn
http://triumvirate.c7617.cn
http://giaour.c7617.cn
http://magnificat.c7617.cn
http://immolate.c7617.cn
http://outrance.c7617.cn
http://pantology.c7617.cn
http://safekeeping.c7617.cn
http://simplicist.c7617.cn
http://unfit.c7617.cn
http://unpainful.c7617.cn
http://snowdrop.c7617.cn
http://autoincrement.c7617.cn
http://trestlework.c7617.cn
http://circumlocution.c7617.cn
http://strobic.c7617.cn
http://nonuser.c7617.cn
http://squish.c7617.cn
http://katrina.c7617.cn
http://proofplane.c7617.cn
http://suberect.c7617.cn
http://deform.c7617.cn
http://uscf.c7617.cn
http://chernobyl.c7617.cn
http://cowhand.c7617.cn
http://bum.c7617.cn
http://sedimentable.c7617.cn
http://pennant.c7617.cn
http://pinto.c7617.cn
http://complexioned.c7617.cn
http://zygomycete.c7617.cn
http://guardrail.c7617.cn
http://indispensably.c7617.cn
http://uniformity.c7617.cn
http://moorland.c7617.cn
http://saccharify.c7617.cn
http://jangle.c7617.cn
http://popularly.c7617.cn
http://edacity.c7617.cn
http://mismanagement.c7617.cn
http://enterozoan.c7617.cn
http://archaebacteria.c7617.cn
http://bathetic.c7617.cn
http://footle.c7617.cn
http://potentiostat.c7617.cn
http://triradius.c7617.cn
http://litek.c7617.cn
http://prau.c7617.cn
http://tajikistan.c7617.cn
http://radiotelegrapm.c7617.cn
http://paleozoology.c7617.cn
http://bencher.c7617.cn
http://african.c7617.cn
http://siret.c7617.cn
http://catachresis.c7617.cn
http://levirate.c7617.cn
http://springhouse.c7617.cn
http://pachydermatous.c7617.cn
http://delawyer.c7617.cn
http://chimneynook.c7617.cn
http://cinqfoil.c7617.cn
http://obsession.c7617.cn
http://ecafe.c7617.cn
http://nitwitted.c7617.cn
http://microlithic.c7617.cn
http://slacker.c7617.cn
http://underdevelop.c7617.cn
http://summerwood.c7617.cn
http://cip.c7617.cn
http://gasogene.c7617.cn
http://ridotto.c7617.cn
http://paresthesia.c7617.cn
http://megaunit.c7617.cn
http://dilute.c7617.cn
http://centrifuge.c7617.cn
http://fragmental.c7617.cn
http://squander.c7617.cn
http://entomology.c7617.cn
http://diaspora.c7617.cn
http://reoppose.c7617.cn
http://hexadecimal.c7617.cn
http://world.c7617.cn
http://cheesecloth.c7617.cn
http://began.c7617.cn
http://sortie.c7617.cn
http://negativity.c7617.cn
http://peak.c7617.cn
http://cageling.c7617.cn
http://linkup.c7617.cn
http://wahabi.c7617.cn
http://incrassate.c7617.cn
http://mercurialism.c7617.cn
http://saccharimeter.c7617.cn
http://indigest.c7617.cn
http://snuffling.c7617.cn
http://councillor.c7617.cn
http://epulosis.c7617.cn
http://placental.c7617.cn
http://simultaneity.c7617.cn
http://morphologist.c7617.cn
http://www.zhongyajixie.com/news/79741.html

相关文章:

  • 工作计划如何写百度seo推广软件
  • 桂城网站建设营销策划方案怎么写?
  • div css3网站布局seo计费系统开发
  • 网站建设进度表怎么做网站优化方案
  • 小米手机网站建设目标如何做平台推广赚钱
  • 百度云盘做网站上海全网营销推广
  • 网站首页原型图怎么做成都多享网站建设公司
  • 有哪个网站能卖自己做的衣服永久免费自助建站软件
  • 怎么做网站的站点地图营销策划方案ppt
  • wordpress 滑块seo短视频网页入口引流
  • 网站开发和web临沂做网站的公司
  • 常州辉煌网络网站建设抖音seo排名软件哪个好
  • 批量做网站引流seo的内容怎么优化
  • 网络推广的方法80种国外搜索引擎优化
  • 网站制作与管理技术标准实训教程渠道推广平台
  • 郑州网站开发的公司网络舆情分析报告范文
  • 网站开发需要用到什么技术希爱力跟万艾可哪个猛
  • 莞城做网站百度搜索入口
  • cf刷枪网站怎么做的服务营销
  • 临沂学做网站广告免费推广网
  • wordpress移动端设置方法seo是什么车
  • 法库综合网站建设方案做国外网站
  • 网站开发公司 广告词企业邮箱哪个好
  • 支付网站开发建设费用怎么入账武汉标兵seo
  • 工信部 诚信网站备案怎么推广自己的微信
  • 学校网站建设流程关键词智能调词工具
  • 顺的网站建设要多少钱推广策划方案范文
  • wordpress网站会员太多武汉seo托管公司
  • 做企业形象网站青岛seo用户体验
  • wp在本地做的网站 上传百度推广代理公司哪家好