查询数据库的时候 明明查了几个字段出来了 但是不知道为什么总是报告这个错误,无法解决。我也找不到错误在哪里

查询数据库的时候 明明查了几个字段出来了 但是不知道为什么总是报告这个错误,无法解决。我也找不到错误在哪里

问题描述:

问题遇到的现象和发生背景

查询数据库的时候 明明查了几个字段出来了 但是不知道为什么总是报告这个错误,无法解决。我也找不到错误在哪里

问题相关代码,请勿粘贴截图
package dao.impl;

import dao.CartDao;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import pojo.Book;
import pojo.Cart;
import utils.C3P0Utils;

import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @Author: 一一哥
 * @Blame: yyg
 * @Since: Created in 2020/8/27
 * @Description: $cursor$
 */
public class CartDaoImpl implements CartDao {

    @Override
    public Cart hasCart(Integer uid, String pid) throws SQLException {
        QueryRunner runner = new QueryRunner(C3P0Utils.getDataSource());

        String sql = "SELECT book.isbn,book.bookname,book.author,book.price,book.book_introduction AS bookintroduction,book.author_introduction as authorintroduction ,book.Inventory,book.warehouse_number as warehousenumber ,book.public_date as publicdate ,book.category,book.picture ,mycart.id,mycart.uid, mycart.pid, mycart.ctotal as total,mycart.ccount as count FROM book JOIN mycart on mycart.pid=book.isbn where mycart.uid = ? and mycart.pid = ?";

        Map<String, Object> resultMap = runner.query(sql, new MapHandler(), uid, pid);
        if (resultMap == null) {
            return null;
        }

        try {
            Cart cart = new Cart();
            //首先从结果集中,把购物车的信息,填充到Cart中!
            BeanUtils.populate(cart, resultMap);
            Book book = new Book();
            //从结果集中,把商品的信息,填充到Product中!
            BeanUtils.populate(book, resultMap);
            cart.setBook(book);
            return cart;
        } catch (IllegalAccessException | InvocationTargetException e) {
            e.printStackTrace();
            return null;
        }
    }

    @Override
    public void insertCart(Cart cart) throws SQLException {
        QueryRunner runner = new QueryRunner(C3P0Utils.getDataSource());
        String sql = "insert into mycart (uid, pid, ctotal, ccount) values(?, ?, ?, ?)";
        runner.update(sql, cart.getUid(), cart.getPid(), cart.getTotal(), cart.getCount());
    }

    @Override
    public void updateCart(Cart cart) {

    }


运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

貌似不是这里报的错,看提示说的是获取购物车记录数量的cart.getcount()获取的是空值,检查一下