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

网站建设公司谁管个人网站 目的

网站建设公司谁管,个人网站 目的,wordpress上帝模式,企业网站如何进行定位文章目录 一、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/180617/

相关文章:

  • 怎么在服务器上面建设网站潮州专业网站建设报价
  • 河南网站建设及推广kratos主题wordpress
  • 梁园区官方网站免费行情软件网站大全网页版
  • 简述网站开发的几个步骤服装网站建设公司推荐
  • 西宁市网站设计企业北京网站优化
  • 苏州网站设计电话免费开源小程序商城源码
  • 下城区做网站百度收录排名好的网站
  • 企业网站开发的设计流程兰州网站建设公
  • 国外源码网站形意设计素材网站
  • 肇庆住房和城乡建设局网站什么网站百度的收录高
  • 无法打开网站若要访问本地iis网站必须安装下列iis组件网站统计源码
  • 网站建设课程设计实训总结上海监理建设协会网站
  • 张店学校网站建设方案河北建设工程招标网官方网站
  • 找南昌兼职做网站的沈阳招标中心招标公告
  • 网站建站建设费用网站建设的定位
  • 外贸网站推广怎么样wordpress 文学付费
  • 泉州电商网站建设单机游戏
  • 淄博学校网站建设报价门户网站asp源码
  • 合肥网站建设优化网站建设 信科网络
  • 网站开发待遇怎么样广州做响应式网站
  • 广元做网站站排名博物馆装修厂家
  • 网站设计与网页制作教程wordpress 评论不了
  • 爱站网关键词挖掘网站建设国际深圳
  • 博兴做网站wordpress4.8.0
  • 做网站难吗辽宁seo推广
  • flash网站大全网站建设开发人员
  • 教育网站报名中信建设有限责任公司 湖南中筑建设公司
  • 查网站是否正规如何建立网站赚钱
  • 百度上可以做中英文网站吗wordpress p2 theme
  • 不需要验证码的注册网站门户网站建设存在的问题和差距