使用mybatis查询遇到的问题: Incorrect column count: expected 1, actual 10


做spring boot 时使用mybatis遇到查询出问题

问题代码如下

    @Override
    @GetMapping("/{id}")
    public String getUser(@PathVariable Integer id) {
        
        String sql = "SELECT * FROM `users` WHERE u_id = ? ";

        System.out.println("-------------------------\n\n");
        String data = JdbcTemplate.queryForObject(sql,new Object[]{id},String.class);
        System.out.println(data);
        System.out.println("-------------------------\n\n");

        return data;
    }

进行查询时出现异常:Incorrect column count: expected 1, actual 10 

 

网上查询很多答案都说是类型的错误,但是我的没有问题

String data = JdbcTemplate.queryForObject(sql,new Object[]{id},String.class);

 

后来发现是返回数据和我接受的数据类型不对,查询时是直接查询 select * from users where ... 返回的数据为多列

 

 

 不会返回时序列化为String,所以修改为

    @Autowired
    JdbcTemplate JdbcTemplate;

    @Override
    @GetMapping("/{id}")
    public String getUser(@PathVariable Integer id) {
        /**
         * SELECT * FROM `users` WHERE u_id = ?
         * Incorrect column count: expected 1, actual 10 查询结果为 10 个,所以异常
         *
         */
        String sql = "SELECT nickename FROM `users` WHERE u_id = ? ";

        System.out.println("-------------------------\n\n");
        String data = JdbcTemplate.queryForObject(sql,new Object[]{id},String.class);
        System.out.println(data);
        System.out.println("-------------------------\n\n");

        return data;
    }

 

 

以此为戒,再接再厉

其他资料:https://www.cnblogs.com/xxt19970908/p/5223755.html

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM