提交 f9aecee6 authored 作者: 吕本才's avatar 吕本才

修改BaseDaoImpl 的注入方式

上级 21db0953
......@@ -20,13 +20,17 @@ public class BaseDaoImpl<T> implements BaseDao<T> {
// 注入当前实体对应的Mapper(由Spring自动注入,需在子类中指定具体Mapper)
// 直接使用 BaseMapper<T>
@Autowired
protected BaseMapper<T> baseMapper;
// 注入SqlSession,用于执行自定义SQL或批量操作(可选)
@Autowired
protected SqlSession sqlSession;
// Setter方法,供子类设置具体的Mapper实例
public void setBaseMapper(BaseMapper<T> baseMapper) {
this.baseMapper = baseMapper;
}
// ------------------------------
// 复用MyBatis-Plus的BaseMapper方法(直接委托给baseMapper)
// ------------------------------
......@@ -136,7 +140,12 @@ public class BaseDaoImpl<T> implements BaseDao<T> {
// 辅助方法:获取Mapper接口中的方法全名(namespace + method)
private String getStatement(String method) {
// 获取当前Mapper的类路径(如com.ruoyi.mapper.UserMapper)
String className = baseMapper.getClass().getInterfaces()[0].getName();
return className + "." + method;
}
}
// 由于baseMapper是接口代理对象,需要获取其接口信息
Class<?>[] interfaces = baseMapper.getClass().getInterfaces();
if (interfaces.length > 0) {
String className = interfaces[0].getName();
return className + "." + method;
}
throw new RuntimeException("无法获取Mapper接口信息");
}
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论