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

网站网页设计的意义国家开放大学网站的作业怎么做

网站网页设计的意义,国家开放大学网站的作业怎么做,成都市网站建设服务商,网站框架都有什么用文章目录 一、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.yayakq.cn/news/905187/

相关文章:

  • 有没有做网站的博士专业wordpress 教育 主题
  • pc端网站开发总结软件开发全过程
  • 网站开发需要网站备案格式
  • 购买了网站空间如何进入河北沧州市网络公司
  • 重庆网站APP中医诊所引流推广方法
  • 技术支持海安网站建设网站推广书
  • 网站进度条什么是电商?电商怎么做
  • 网站如何做ins链接分享综合购物网站建站
  • 2017自己做网站的趋势重庆app软件制作公司
  • 中英切换的网站咋做统一开发平台
  • 建设一个网站首先需要什么问题企业门户网站开发
  • 手机免费自助建站系统做彩票网站能挣到钱吗?
  • 网站工作沟通及建设win10 wordpress安装教程视频
  • 建设银行甘肃省分行网站缴费点击器
  • 网站建设费归入长期待摊费用多用户建站平台
  • 做网站是什么课门户网站开发软件
  • 济宁网站建设怎么样云主机上传wordpress
  • 温州城市建设投资集团网站福州网站建设服务平台
  • 微信端的网站开发python做网站手机版和电脑版怎么区分
  • 辽宁沈阳网站建设网站设计背景怎么写
  • 济南高新区网站建设手机网站建设用乐云seo
  • 做网站需要什么知识wordpress+爱情主题
  • 金阊企业建设网站公司小程序模板代码
  • 邢台做网站可信赖房屋设计软件app哪个好
  • 电商网站后台功能旅游企业做网站主要目的
  • 谢岗网站建设公司上海网站制作是什么
  • 山东高端网站建设做网站猫要做端口映射吗
  • 扬州做网站的公司哪个好视频号推广平台
  • 注册网站域名的入口教程网
  • 微网站开发报价购物网站排名2015