Merge remote-tracking branch 'origin/后台运营yy' into 后台运营yy

后台运营yy
yangyang 8 months ago
commit 074772143a

@ -1,26 +1,43 @@
package com.tamguo.config.dao; package com.tamguo.config.dao;
import com.baomidou.mybatisplus.mapper.MetaObjectHandler; import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.reflection.MetaObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
/** /**
* , * MyBatis-PlusMetaObjectHandler
* MyBatis-Plus
* @ComponentSpring
*/ */
//@Component //@Component
public class MyMetaObjectHandler extends MetaObjectHandler { public class MyMetaObjectHandler extends MetaObjectHandler {
// 创建一个Logger实例用于记录日志这里记录的日志类别是基于当前类MyMetaObjectHandler的方便在日志中定位相关操作记录
protected final static Logger logger = LoggerFactory.getLogger(MyMetaObjectHandler.class); protected final static Logger logger = LoggerFactory.getLogger(MyMetaObjectHandler.class);
/**
* insertFill
*
* MetaObject
*
* @param metaObject MetaObject
* MetaObjectMyBatis便
*/
@Override @Override
public void insertFill(MetaObject metaObject) { public void insertFill(MetaObject metaObject) {
logger.info("新增的时候干点不可描述的事情"); logger.info("新增的时候干点不可描述的事情");
} }
/**
* updateFill
*
* MetaObject
*
* @param metaObject MetaObjectinsertFill
*/
@Override @Override
public void updateFill(MetaObject metaObject) { public void updateFill(MetaObject metaObject) {
logger.info("更新的时候干点不可描述的事情"); logger.info("更新的时候干点不可描述的事情");
} }
} }

@ -16,10 +16,14 @@ import org.springframework.context.annotation.Configuration;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
// 标识这是一个配置类Spring会自动扫描并处理这个类中的Bean定义等配置信息
@Configuration @Configuration
// 配置MyBatis-Plus的Mapper扫描路径会扫描com.tamguo.dao及其子包下的所有Mapper接口
@MapperScan("com.tamguo.dao*") @MapperScan("com.tamguo.dao*")
public class MybatisPlusConfig { public class MybatisPlusConfig {
// 定义一个名为performanceInterceptor的Bean方法用于创建并返回PerformanceInterceptor实例
// PerformanceInterceptor通常用于拦截SQL执行记录SQL执行性能相关的信息比如执行时长等
@Bean @Bean
public PerformanceInterceptor performanceInterceptor() { public PerformanceInterceptor performanceInterceptor() {
return new PerformanceInterceptor(); return new PerformanceInterceptor();
@ -28,28 +32,35 @@ public class MybatisPlusConfig {
/** /**
* mybatis-plus<br> * mybatis-plus<br>
* http://mp.baomidou.com<br> * http://mp.baomidou.com<br>
* PaginationInterceptorMyBatis-Plus
*/ */
@Bean @Bean
public PaginationInterceptor paginationInterceptor() { public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setLocalPage(true);// 开启 PageHelper 的支持 // 设置开启PageHelper的支持以便能更好地与PageHelper等分页相关的工具兼容使用
paginationInterceptor.setLocalPage(true);
/* /*
* SQL <br> * SQL <br>
* 1 cookie SQL <br> * 1 cookie SQL <br>
* SQLSQL
*/ */
List<ISqlParser> sqlParserList = new ArrayList<ISqlParser>(); List<ISqlParser> sqlParserList = new ArrayList<ISqlParser>();
TenantSqlParser tenantSqlParser = new TenantSqlParser(); TenantSqlParser tenantSqlParser = new TenantSqlParser();
tenantSqlParser.setTenantHandler(new TenantHandler() { tenantSqlParser.setTenantHandler(new TenantHandler() {
// 获取租户ID对应的表达式这里返回null实际应用中通常需要按照业务规则返回正确的租户ID表达式
@Override @Override
public Expression getTenantId() { public Expression getTenantId() {
return null; return null;
} }
// 指定租户ID对应的数据库表列名此处设置为"company_id",意味着在多租户场景下通过这个列来区分不同租户的数据
@Override @Override
public String getTenantIdColumn() { public String getTenantIdColumn() {
return "company_id"; return "company_id";
} }
// 判断是否对指定的表名进行过滤返回true表示进行过滤具体的过滤逻辑可以根据业务需求在这个方法内进一步完善
@Override @Override
public boolean doTableFilter(String tableName) { public boolean doTableFilter(String tableName) {
// 这里可以判断是否过滤表 // 这里可以判断是否过滤表
@ -57,9 +68,9 @@ public class MybatisPlusConfig {
} }
}); });
sqlParserList.add(tenantSqlParser); sqlParserList.add(tenantSqlParser);
paginationInterceptor.setSqlParserList(sqlParserList); paginationInterceptor.setSqlParserList(sqlParserList);
// 以下过滤方式与 @SqlParser(filter = true) 注解等效 // 以下过滤方式与 @SqlParser(filter = true) 注解等效
// paginationInterceptor.setSqlParserFilter(new ISqlParserFilter() { // paginationInterceptor.setSqlParserFilter(new ISqlParserFilter() {
// @Override // @Override
@ -72,19 +83,23 @@ public class MybatisPlusConfig {
// return false; // return false;
// } // }
// }); // });
return paginationInterceptor; return paginationInterceptor;
} }
// 定义一个名为metaObjectHandler的Bean方法用于创建并返回自定义的MetaObjectHandler实例此处是MyMetaObjectHandler
// MetaObjectHandler通常用于在插入或更新操作时自动填充一些公共字段比如创建时间、更新时间等
@Bean @Bean
public MetaObjectHandler metaObjectHandler(){ public MetaObjectHandler metaObjectHandler() {
return new MyMetaObjectHandler(); return new MyMetaObjectHandler();
} }
/** /**
* sql * sql
* LogicSqlInjector
*/ */
/*@Bean /*@Bean
public ISqlInjector sqlInjector(){ public ISqlInjector sqlInjector(){
return new LogicSqlInjector(); return new LogicSqlInjector();
}*/ }*/
} }

@ -6,25 +6,40 @@ import com.baomidou.mybatisplus.annotations.TableId;
/** /**
* *
* 便
*
*/ */
public class SuperEntity<T extends Model<?>> extends Model<T> { public class SuperEntity<T extends Model<?>> extends Model<T> {
// 用于定义类的序列化版本号,在进行对象序列化和反序列化时起到版本控制的作用,保证兼容性。
// 这里初始化为1L一般如果类的结构等没有发生不兼容的变更这个值可以保持不变。
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId("id") // 使用MyBatis-Plus提供的注解 @TableId 标记该属性为数据库表的主键字段,
private String id; // 这里指定对应的数据库表中的列名为 "id",意味着在与数据库交互时,通过该字段来标识唯一的记录。
@TableId("id")
@Override private String id;
protected Serializable pkVal() {
return this.getId(); /**
} * ModelpkVal
* idMyBatis-Plus
*
*
* @return SerializableStringid
* StringSerializable
*/
@Override
protected Serializable pkVal() {
return this.getId();
}
// 获取id属性值的方法外部类可以通过调用该方法获取实体对象对应的主键值。
public String getId() { public String getId() {
return id; return id;
} }
// 设置id属性值的方法外部类可以通过调用该方法为实体对象设置主键值用于创建或更新实体对象时指定主键信息。
public void setId(String id) { public void setId(String id) {
this.id = id; this.id = id;
} }
}
}

@ -3,9 +3,16 @@ package com.tamguo.config.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.BaseMapper;
/** /**
* mapper mp * mapper
* Mapper便
* mpMyBatis-Plus
*
* MyBatis-Plus
*/ */
public interface SuperMapper<T> extends BaseMapper<T> { public interface SuperMapper<T> extends BaseMapper<T> {
// 这里可以放一些公共的方法 // 这里可以放一些公共的方法
} // 例如一些所有实体对应的Mapper都可能会用到的通用查询、通用更新逻辑等相关方法
// 具体的方法定义需要根据实际业务需求来添加,然后由具体继承该接口的子类去实现这些方法,
// 从而实现代码复用以及保证操作的一致性和规范性。
}
Loading…
Cancel
Save