鱼C论坛

 找回密码
 立即注册
查看: 119|回复: 3

[已解决]mybatis分页查询返回空列表

[复制链接]
发表于 2024-3-18 11:26:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在java web开发中想通过mybatis实现一个分页功能,但是在测试中查询出来的结果是空的,在datagrip中是可以查询出来的。想请问是哪一步错了。
MybatisConfig.xml
  1. <select id="selectByPage" resultType="edu.zjku.bean.Blog" parameterType="int">
  2.         select * from blog limit #{param1},#{param2}
  3.     </select>
复制代码

BlogMapper
  1.     List<Blog> selectByPage(int pageNumber,int linesPerPage);
复制代码

BlogService
  1.     List<Blog> selectByPage(int pageNumber,int linesPerPage);
复制代码

BlogServiceImpl
  1. @Override
  2.     public List<Blog> selectByPage(int pageNumber,int linesPerPage) {
  3.         List<Blog> list = null;
  4.         InputStream is = null;
  5.         SqlSession sql = null;
  6.         try {
  7.             is = Resources.getResourceAsStream("mybatisConfig.xml");
  8.             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
  9.             sql = sqlSessionFactory.openSession(true);
  10.             BlogMapper mapper = sql.getMapper(BlogMapper.class);
  11.             list = mapper.selectByPage((pageNumber-1)*linesPerPage,linesPerPage);
  12.         } catch (IOException e) {
  13.             e.printStackTrace();
  14.             if (sql != null) {
  15.                 sql.close();
  16.             }
  17.             if (is != null) {
  18.                 try {
  19.                     is.close();
  20.                 } catch (IOException ioException) {
  21.                     ioException.printStackTrace();
  22.                 }
  23.             }
  24.         }
  25.         return list;
  26.     }
复制代码

BlogTest
  1. //分页查询测试
  2.         List<Blog> list = null;
  3.         int pageNum = 1;
  4.         int linesPerPage = 3;
  5.         list = service.selectByPage(pageNum, linesPerPage);
  6.         for (Blog blog : list){
  7.             blog.toString();
  8.         }
复制代码
最佳答案
2024-3-18 11:26:22
从你提供的代码来看,可能出现错误的地方有以下几点:

1. MybatisConfig.xml配置文件问题:你在提问中给出的MybatisConfig.xml文件中只有一个简单的SQL语句,这是不完整的。通常情况下,你需要在MybatisConfig.xml中配置数据源、映射文件路径等信息。请确保MybatisConfig.xml配置文件正确,并且已经包含了合适的映射文件。

2. BlogMapper接口问题:请确保BlogMapper接口中定义的方法名称和参数与数据库中的表和字段对应。

3. BlogMapper.xml映射文件问题:请仔细检查BlogMapper.xml映射文件中SQL查询语句是否正确,并且参数位置、名称是否与接口中的方法一致。

4. 数据库连接问题:请确保数据库连接配置正确,并且数据库中是否存在符合查询条件的数据。

另外,你在测试代码中使用了`for (Blog blog : list){ blog.toString(); }`来遍历结果集,但是并没有输出,我假设你想要打印出结果,可以修改为`for (Blog blog : list){ System.out.println(blog.toString()); }`。

如果你仍然无法解决问题,请提供更多的信息和错误提示,以便我们更好地帮助你解决问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-18 11:26:22 | 显示全部楼层    本楼为最佳答案   
从你提供的代码来看,可能出现错误的地方有以下几点:

1. MybatisConfig.xml配置文件问题:你在提问中给出的MybatisConfig.xml文件中只有一个简单的SQL语句,这是不完整的。通常情况下,你需要在MybatisConfig.xml中配置数据源、映射文件路径等信息。请确保MybatisConfig.xml配置文件正确,并且已经包含了合适的映射文件。

2. BlogMapper接口问题:请确保BlogMapper接口中定义的方法名称和参数与数据库中的表和字段对应。

3. BlogMapper.xml映射文件问题:请仔细检查BlogMapper.xml映射文件中SQL查询语句是否正确,并且参数位置、名称是否与接口中的方法一致。

4. 数据库连接问题:请确保数据库连接配置正确,并且数据库中是否存在符合查询条件的数据。

另外,你在测试代码中使用了`for (Blog blog : list){ blog.toString(); }`来遍历结果集,但是并没有输出,我假设你想要打印出结果,可以修改为`for (Blog blog : list){ System.out.println(blog.toString()); }`。

如果你仍然无法解决问题,请提供更多的信息和错误提示,以便我们更好地帮助你解决问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-18 11:28:28 | 显示全部楼层
破案了,因为最后的测试类没有使用System.out.println()输出所以看不见。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-18 11:28:41 | 显示全部楼层
ZhihanXing 发表于 2024-03-18 11:28
破案了,因为最后的测试类没有使用System.out.println ...


没问题,很高兴你找到了问题所在!确实,如果不使用`System.out.println()`或其他输出方法,结果是看不到的。在编写测试代码时,请确保使用适当的方式输出结果,这样可以更方便地查看和验证查询结果。顺便说一下,你还可以使用日志记录器(如logback、log4j等)来输出结果,这样会更加灵活和可控。如果你有任何其他问题,都可以随时向我提问哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 05:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表