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

做历史课件用哪个网站比较好wordpress 好的插件推荐

做历史课件用哪个网站比较好,wordpress 好的插件推荐,仿淘宝网站源码 php,上海城隍庙目录 Mybatis-plus多租户插件实现原理使用 Mybatis-plus多租户插件 Mybatis-plus多租户插件是一种用于实现多租户功能的插件#xff0c;它基于Mybatis框架#xff0c;通过拦截器机制实现对多租户的支持。该插件的核心组件包括TenantHandler和TenantInterceptor#xff0c;其… 目录 Mybatis-plus多租户插件实现原理使用 Mybatis-plus多租户插件 Mybatis-plus多租户插件是一种用于实现多租户功能的插件它基于Mybatis框架通过拦截器机制实现对多租户的支持。该插件的核心组件包括TenantHandler和TenantInterceptor其中TenantHandler用于处理租户相关的逻辑如获取租户ID、设置租户信息等而TenantInterceptor则用于拦截需要处理多租户的SQL语句并在SQL中添加租户条件。 官方说明 多租户 ! 权限过滤,不要乱用,租户之间是完全隔离的!!!启用多租户后所有执行的method的sql都会进行处理.自写的sql请按规范书写(sql涉及到多个表的每个表都要给别名,特别是 inner join 的要写标准的 inner join 实现原理 Mybatis-plus多租户插件的实现原理主要基于Mybatis的拦截器(Interceptor)机制通过拦截器在需要执行的sql后面自动添加租户的查询条件实现多租户功能。具体来说Mybatis-plus提供了TenantLineInnerInterceptor租户处理器来实现多租户功能。在启用多租户后所有执行的method的sql都会被处理即自写的sql需要按照规范书写sql涉及到多个表的每个表都要给别名特别是inner join的要写标准的inner join。 简单来说Mybatis-plus多租户插件通过自定义Mybatis拦截器在执行sql时自动添加租户的查询条件实现多租户功能。 和基于物理隔离分表实现多租户不同基于逻辑隔离租户标识列tenant_id实现多租户是在每一张表中添加一个租户标识列tenant_id通过该列来区分各个租户的数据。 TenantLineInnerInterceptor插件也是基于逻辑隔离租户标识列tenant_id实现多租户的只不过它给我们封装了部分逻辑让我们不用再SQL中显示地指定tenant_id作为条件它会自动为我们拼接。 使用 1、自定义TenantLineHandler 下面是TenantLineHandler 接口的定义主要是用于获取租户ID和表是否需要需要租户隔离判断 /*** 租户处理器 TenantId 行级 ** author hubin* since 3.4.0*/ public interface TenantLineHandler {/*** 获取租户 ID 值表达式只支持单个 ID 值* p** return 租户 ID 值表达式*/Expression getTenantId();/*** 获取租户字段名* p* 默认字段名叫: tenant_id** return 租户字段名*/default String getTenantIdColumn() {return tenant_id;}/*** 根据表名判断是否忽略拼接多租户条件* p* 默认都要进行解析并拼接多租户条件** param tableName 表名* return 是否忽略, true:表示忽略false:需要解析并拼接多租户条件*/default boolean ignoreTable(String tableName) {return false;}/*** 忽略插入租户字段逻辑** param columns 插入字段* param tenantIdColumn 租户 ID 字段* return*/default boolean ignoreInsert(ListColumn columns, String tenantIdColumn) {return columns.stream().map(Column::getColumnName).anyMatch(i - i.equalsIgnoreCase(tenantIdColumn));} }自定义的TenantLineHandler 我们需要按照自己的实际情况来定义自己的租户字段和获取 Slf4j Component public class MyTenantLineHandler implements TenantLineHandler {/*** 租户字段名*/private static final String SYSTEM_TENANT_ID tenant_id;/*** 默认的租户ID*/public static final Long DEFAULT_TENANT_ID 1L;/*** 需要过滤的表*/private static final ListString IGNORE_TENANT_TABLES new ArrayList();/*** 获取租户ID值* return*/Overridepublic Expression getTenantId() {//获取登录用户的租户IDLong loginUserTenantId getLoginUserTenantId();if (loginUserTenantId null){loginUserTenantId DEFAULT_TENANT_ID;}return new LongValue(loginUserTenantId);}/*** 租户字段名默认是tenant_id如果想改成其他字段在这里返回即可* return*/Overridepublic String getTenantIdColumn() {return SYSTEM_TENANT_ID;}/*** 有不需要进行租户隔离的表在这里返回true* param tableName* return*/Overridepublic boolean ignoreTable(String tableName) {return IGNORE_TENANT_TABLES.contains(tableName);}public Long getLoginUserTenantId(){//模拟获取登录用户的租户ID实际项目可以从登录用户缓存信息中获取return 1L;}}2、添加租户ID字段 我们的表和实体类都需要添加上租户ID字段 表字段 tenant_id bigint(20) NOT NULL COMMENT 多租户下的租户ID,实体字段 TableField(tenant_id)private Long tenantId;3、注册mybatisplus的多租户实现到 MybatisPlusInterceptor Configuration public class MybatisPlusConfig {/*** 添加MP插件*/Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();// 添加多租户插件interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new MyTenantLineHandler()));//如果配置多个插件,切记分页最后添加,如果有多数据源可以不配具体类型 否则都建议配上具体的DbTypePaginationInnerInterceptor paginationInnerInterceptor new PaginationInnerInterceptor(DbType.MYSQL);//设置单页分页最大数量paginationInnerInterceptor.setMaxLimit(500L);interceptor.addInnerInterceptor(paginationInnerInterceptor);return interceptor;}}完成上面配置之后Mybatisplus就会帮我们在增删改查的所有操作都给拼接上携带租户条件。
http://www.zqtcl.cn/news/73034/

相关文章:

  • 广州网站建设公司怎么挑选帝国系统做网站地图
  • 吉林建设教育协会网站嵊州网站建设
  • 做公司网站比较好的网站如何301
  • 现在的网站内容区域做多宽陕西省建设监理协会网站证书
  • 建设网站的网站空间男女做那个的小视频网站
  • 站群管理公司网站后台怎么上传图片
  • 我想给网站网站做代理中国四大咨询公司
  • 上海自助建站官网网站开发视频代码
  • 企业自建网站营销论文福建建设网站
  • 有建设银行信用卡怎么登陆不了网站自我介绍ppt插图
  • 海沧区建设局网站 破路申请做网站要多少的分辨率
  • 网站点击量在哪里看我的世界做图的网站
  • 查看网站开发语言方法惠州软件开发
  • 深度网营销型网站建设公司怎么样网站单页制作教程
  • 网站建设金手指排名霸屏国外做宠物用品的网站
  • 最新在线免费网站在网站设计中 网页框架设计
  • 做网站要以单位北京住房与建设部网站
  • 深圳html5网站推广价格建网站要多少费用
  • 嘉定建站公司网络维护人员必备技能
  • 三元区建设小学网站深圳做手机网站
  • 支付网站建设费开发工具设置控件格式
  • 住房和城乡建设部网站统计唐山市里做网站的
  • 网站建设微信商城开发军事新闻头条
  • 搜狐快站做淘宝客网站儿童手工制作大全
  • 做站用什么网站程序自己在家可以做网站吗
  • 仿手表网站河北邯郸中考成绩查询网站
  • 北京做网站定制价格公司网站怎么维护
  • wordpress theme 删除seo网络营销外包公司
  • 电商网站建设课程设计实验报告手游传奇开服网站
  • 电子商务网站开发是什么互联网相关行业有哪些