标签:
根据您提供的错误信息,MyBatis
在执行查询时无法找到名为 limit
的参数。这通常是因为在调用 Mapper 方法时未正确传递参数。下面是一些可能的解决方案和注意事项,确保参数正确传递给 SQL 查询。
1. 确保方法签名正确
在您的 SysNewsInfoMapper
接口中,确保使用了 @Param
注解,以便在 XML 中正确引用。
public interface SysNewsInfoMapper {
List<SysNewsInfo> selectSysNewsInfoListWithPagination(@Param("offset") int offset, @Param("limit") int limit);
}
Java
2. 确保 MyBatis Mapper XML 正确引用参数
在您的 SysNewsInfoMapper.xml
文件中,确保 LIMIT
和 OFFSET
使用了正确的参数名:
<select id="selectSysNewsInfoListWithPagination" resultType="com.ruoyi.domain.SysNewsInfo">
SELECT *
FROM sys_news_info
ORDER BY publish_date DESC
LIMIT #{limit} OFFSET #{offset}
</select>
XML
3. 确保调用方法时传递正确的参数
在 Service 实现中,确保在调用 selectSysNewsInfoListWithPagination
方法时传递了正确参数:
@Override
public List<SysNewsInfo> findAll(int pageNum, int pageSize) {
int offset = (pageNum - 1) * pageSize;
return sysNewsInfoMapper.selectSysNewsInfoListWithPagination(offset, pageSize);
}
Java
4. 使用 Map
作为参数
如果以上方法仍然存在问题,您可以考虑将多个参数封装到 Map
中:
更新接口
import java.util.Map;
public interface SysNewsInfoMapper {
List<SysNewsInfo> selectSysNewsInfoListWithPagination(Map<String, Object> params);
}
Java
在 Service 中调用时
@Override
public List<SysNewsInfo> findAll(int pageNum, int pageSize) {
int offset = (pageNum - 1) * pageSize;
Map<String, Object> params = new HashMap<>();
params.put("offset", offset);
params.put("limit", pageSize);
return sysNewsInfoMapper.selectSysNewsInfoListWithPagination(params);
}
Java
更新 XML
<select id="selectSysNewsInfoListWithPagination" parameterType="map" resultType="com.ruoyi.domain.SysNewsInfo">
SELECT *
FROM sys_news_info
ORDER BY publish_date DESC
LIMIT #{limit} OFFSET #{offset}
</select>
XML
5. 确认参数在调用时存在
确保在调用 findAll
方法时使用了正确的 pageNum
和 pageSize
参数。错误的参数可能导致传递给 Mapper 方法的值不正确。
总结
以上几种方法可以帮助您解决 MyBatis
中的参数未找到问题。通常,确保参数的名称一致、正确传递以及在 Mapper 文件中正确引用参数是关键。
标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。