鱼C论坛

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

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

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

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

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

x
我在java web开发中想通过mybatis实现一个分页功能,但是在测试中查询出来的结果是空的,在datagrip中是可以查询出来的。想请问是哪一步错了。
MybatisConfig.xml
<select id="selectByPage" resultType="edu.zjku.bean.Blog" parameterType="int">
        select * from blog limit #{param1},#{param2}
    </select>
BlogMapper
    List<Blog> selectByPage(int pageNumber,int linesPerPage);
BlogService
    List<Blog> selectByPage(int pageNumber,int linesPerPage);
BlogServiceImpl
@Override
    public List<Blog> selectByPage(int pageNumber,int linesPerPage) {
        List<Blog> list = null;
        InputStream is = null;
        SqlSession sql = null;
        try {
            is = Resources.getResourceAsStream("mybatisConfig.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            sql = sqlSessionFactory.openSession(true);
            BlogMapper mapper = sql.getMapper(BlogMapper.class);
            list = mapper.selectByPage((pageNumber-1)*linesPerPage,linesPerPage);
        } catch (IOException e) {
            e.printStackTrace();
            if (sql != null) {
                sql.close();
            }
            if (is != null) {
                try {
                    is.close();
                } catch (IOException ioException) {
                    ioException.printStackTrace();
                }
            }
        }
        return list;
    }
BlogTest
//分页查询测试
        List<Blog> list = null;
        int pageNum = 1;
        int linesPerPage = 3;
        list = service.selectByPage(pageNum, linesPerPage);
        for (Blog blog : list){
            blog.toString();
        }
最佳答案
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-12-31 02:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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