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

下模板做网站企业培训内容有哪些

下模板做网站,企业培训内容有哪些,深圳seo优化方案,便宜的香港云服务器文章目录 一、TenantLineHandler1、介绍2、包含的方法 二、简单实例三、实践1、实现TenantLineHandler接口 一、TenantLineHandler 1、介绍 TenantLineHandler 是 Mybatis-Plus 中用于处理多租户的接口,用于实现多租户数据隔离的具体逻辑。通过实现这个接口&#…

文章目录

  • 一、TenantLineHandler
    • 1、介绍
    • 2、包含的方法
  • 二、简单实例
  • 三、实践
    • 1、实现TenantLineHandler接口

一、TenantLineHandler

1、介绍

TenantLineHandler 是 Mybatis-Plus 中用于处理多租户的接口,用于实现多租户数据隔离的具体逻辑。通过实现这个接口,我们可以自定义多租户的处理方式,例如根据不同的租户信息动态拼装 SQL 条件,实现数据的隔离。

2、包含的方法

在 Mybatis-Plus 中,TenantLineHandler 接口包含了以下方法:

  • getTenantIdColumn():获取租户 ID 字段名。
  • getTenantId():获取当前租户 ID。
  • getTenantIdValue():获取租户 ID 的具体数值。
  • getTenantIdList():获取租户 ID 列表。
  • getTenantIdExpression():获取租户 ID 的 SQL 表达式。
    通过实现 TenantLineHandler 接口,并重写以上方法,我们可以根据具体的业务需求来自定义多租户的处理逻辑。例如,可以根据不同的租户 ID 动态拼装 SQL 条件,实现数据的隔离查询。

二、简单实例

面是一个简单示例,展示了如何自定义一个 TenantLineHandler 的实现类:

public class MyTenantLineHandler implements TenantLineHandler {@Overridepublic Expression getTenantId() {// 获取当前租户 IDLong tenantId = getCurrentTenantId();if (tenantId != null) {return new StringValue(String.valueOf(tenantId));} else {return null;}}@Overridepublic String getTenantIdColumn() {// 返回租户 ID 字段名return "tenant_id";}// 自定义方法,获取当前的租户 IDprivate Long getCurrentTenantId() {// 这里可以根据实际情况获取当前的租户 ID,可以从 ThreadLocal、token、session 等地方获取// 这里只是一个示例,实际中需要根据具体的业务逻辑进行实现return 1L;}
}

通过实现 TenantLineHandler 接口并重写其中的方法,我们可以灵活地处理多租户的逻辑,实现数据的隔离查询和操作。

三、实践

1、实现TenantLineHandler接口

import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.xxx.ContextHolder;
import com.xxx.TenantConfig;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;
import net.sf.jsqlparser.schema.Column;
import org.apache.commons.lang3.StringUtils;
import java.util.Objects;import java.util.List;
import java.util.Optional;public class MultiTenantHandler implements TenantLineHandler{private final Config config;public MultiTenantHandler(Config config) {this.config= config;}@Overridepublic Expression getTenantId() {String tenantId = Optional.ofNullable(ContextHolder.getTenantId()).orElse("1");return new LongValue(tenantId);}@Overridepublic String getTenantIdColumn() {return tenantConfig.getTenantIdColumn();}@Overridepublic boolean ignoreTable(String tableName) {// 其他处理逻辑return TenantLineHandler.super.ignoreTable(tableName);}@Overridepublic boolean ignoreInsert(List<Column> columns, String tenantIdColumn) {return TenantLineHandler.super.ignoreInsert(columns, tenantIdColumn);}
}
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.List;
@Configuration
@ConfigurationProperties(prefix = "tenant")
@Data
public class Config {/*** 是否开启多租户*/private Boolean enable = true;/*** 租户id字段名*/private String tenantIdColumn = "tenant_id";/*** 需要忽略的多租户的表,此配置优先filterTables,若此配置为空则启用filterTables*/private List<String> ignoreTables;/*** 忽略指定用户对租户的数据过滤*/private List<String> ignoreLoginNames;/*** 忽略某租户对数据的过滤*/private String ignoreTenantId;}
http://www.mnyf.cn/news/52629.html

相关文章:

  • 高密做网站的公司网络营销出来可以干什么工作
  • 做se要明白网站广东免费网络推广软件
  • 金融行业seo整站优化网站模板下载免费
  • 黑龙江新闻夜航今晚回放句容市网站seo优化排名
  • 前端需要会wordpress整站seo
  • 网站的404如何做怎么做属于自己的网站
  • 重庆广告公司网站建设外贸建站教程
  • 一流的盐城网站开发网站推广一般多少钱
  • 网站平台推广方案成人本科报考官网
  • 网站建设与设计大作业网站建设品牌公司
  • 沭阳网站开发广东深圳今天最新通知
  • 青岛本地网站全网整合营销外包
  • 软件开发专业代码百度关键词优化软件如何
  • 没有备案的网站怎么做淘宝客熊猫关键词工具
  • 做球球棒棒糖网站源码程序员培训机构排名
  • 建设网站商品怎么弄宁波seo搜索平台推广专业
  • 德州网站制作哪家好湖南企业seo优化首选
  • 自动做PPT的网站网络营销推广方案设计
  • wordpress怎么查看域名绑定网站seo具体怎么做?
  • 政府网站建设提供商南宁关键词优化软件
  • 国外有什么网站做游戏网络广告代理
  • 美容院网站模板项目外包平台
  • wordpress 红色模版seo实战密码第四版pdf
  • 做网站外包价格网络营销项目策划
  • 商城网站建设fwshopseo网站优化推广费用
  • 做赌钱网站热门搜索排行榜
  • 哪个cms可以做交友网站潍坊百度快速排名优化
  • 做游戏网站有钱赚吗百度搜索引擎优化
  • 高端网站设计定制公司足球直播在线直播观看免费cctv5
  • 交易平台网站程序中山网站seo优化