diff --git a/README.md b/README.md
index c2178b0..bdadb08 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,8 @@
- 管理员账号:system 密码:123456 **因为线上数据和测试数据没有做到隔离,作者已经把密码修改,可用.sql在本地运行看后台效果。**
-加QQ群:937899574 可免费获取SQL基本
+现在作者组建一个团队来对这个项目进行迭代升级,需要前端、后端、设计人员
+有兴趣加入的小伙伴,可以加作者微信: tamgoooo
diff --git a/tamguo-oms/src/main/java/com/tamguo/config/dao/MybatisPlusConfig.java b/tamguo-oms/src/main/java/com/tamguo/config/dao/MybatisPlusConfig.java
index 47d0386..aba580c 100644
--- a/tamguo-oms/src/main/java/com/tamguo/config/dao/MybatisPlusConfig.java
+++ b/tamguo-oms/src/main/java/com/tamguo/config/dao/MybatisPlusConfig.java
@@ -19,10 +19,13 @@ import com.baomidou.mybatisplus.plugins.parser.tenant.TenantSqlParser;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;
+// 表示这是一个配置类,Spring会扫描这个类并将其中带有@Bean注解的方法返回的对象注册为Bean
@Configuration
+// 配置MyBatis Mapper接口的扫描路径,会扫描指定包及其子包下的所有Mapper接口,方便Spring与MyBatis整合时能找到对应的Mapper
@MapperScan("com.tamguo.modules.*.dao*")
public class MybatisPlusConfig {
+ // 创建并返回一个PerformanceInterceptor实例,用于拦截MyBatis执行的SQL语句,可用于性能监控,例如记录SQL执行时间等
@Bean
public PerformanceInterceptor performanceInterceptor() {
return new PerformanceInterceptor();
@@ -31,63 +34,78 @@ public class MybatisPlusConfig {
/**
* mybatis-plus分页插件
* 文档:http://mp.baomidou.com
+ * 此方法创建并配置一个PaginationInterceptor实例,用于实现MyBatis Plus的分页功能,同时还进行了与多租户相关的一些配置。
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
- paginationInterceptor.setLocalPage(true);// 开启 PageHelper 的支持
+ // 设置开启PageHelper的支持,以便更好地兼容一些分页相关的操作习惯等情况
+ paginationInterceptor.setLocalPage(true);
+
/*
* 【测试多租户】 SQL 解析处理拦截器
- * 这里固定写成住户 1 实际情况你可以从cookie读取,因此数据看不到 【 麻花藤 】 这条记录( 注意观察 SQL )
+ * 这里固定写成住户1实际情况你可以从cookie读取,因此数据看不到 【 麻花藤 】 这条记录( 注意观察 SQL )
+ * 以下代码是配置多租户相关的SQL解析拦截逻辑,用于在执行SQL时根据租户规则对SQL语句进行处理。
*/
List sqlParserList = new ArrayList<>();
TenantSqlParser tenantSqlParser = new TenantSqlParser();
+
+ // 设置租户处理器,用于定义获取租户ID、租户ID对应的列名以及判断是否过滤表等逻辑
tenantSqlParser.setTenantHandler(new TenantHandler() {
+ // 返回租户ID对应的表达式,这里固定返回值为1L,表示租户ID为1
@Override
public Expression getTenantId() {
return new LongValue(1L);
}
+ // 返回租户ID在数据库表中对应的列名,此处为"course_id"
@Override
public String getTenantIdColumn() {
return "course_id";
}
+ // 判断是否对指定表进行过滤,这里返回true表示需要进行过滤操作,具体过滤逻辑可根据实际情况调整
@Override
public boolean doTableFilter(String tableName) {
- // 这里可以判断是否过滤表
return true;
}
});
-
+ // 将配置好的租户SQL解析器添加到SQL解析器列表中
sqlParserList.add(tenantSqlParser);
+
+ // 将包含租户相关配置的SQL解析器列表设置到分页拦截器中,使得分页拦截器在处理SQL时能应用多租户逻辑
paginationInterceptor.setSqlParserList(sqlParserList);
+
// 以下过滤方式与 @SqlParser(filter = true) 注解等效
+ // 配置SQL解析过滤器,用于根据具体的MappedStatement的ID来决定是否对SQL进行过滤,这里是针对特定的自定义查询进行过滤
// paginationInterceptor.setSqlParserFilter(new ISqlParserFilter() {
// @Override
// public boolean doFilter(MetaObject metaObject) {
// MappedStatement ms = PluginUtils.getMappedStatement(metaObject);
-// // 过滤自定义查询此时无租户信息约束【 麻花藤 】出现
+// // 过滤自定义查询此时无租户信息约束【 麻花藤 】出现,即如果是指定的这个查询方法,则返回true表示过滤该查询,不应用租户相关逻辑
// if ("com.baomidou.springboot.mapper.UserMapper.selectListBySQL".equals(ms.getId())) {
// return true;
// }
// return false;
// }
// });
+
return paginationInterceptor;
}
+ // 创建并返回一个MetaObjectHandler实例,用于在执行MyBatis相关操作时,自动填充一些公共字段等元数据处理逻辑,具体填充逻辑在返回的MyMetaObjectHandler类中实现
@Bean
- public MetaObjectHandler metaObjectHandler(){
+ public MetaObjectHandler metaObjectHandler() {
return new MyMetaObjectHandler();
}
/**
* 注入sql注入器
+ * 此方法创建并返回一个ISqlInjector实例,这里使用的是LogicSqlInjector,用于实现一些逻辑删除等特定的SQL注入功能(MyBatis Plus特性相关)。
*/
@Bean
- public ISqlInjector sqlInjector(){
+ public ISqlInjector sqlInjector() {
return new LogicSqlInjector();
}
-}
+}
\ No newline at end of file