使用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

 

posted @ 2020-05-16 02:18  花名k  阅读(2562)  评论(0)    收藏  举报