查询数据库的时候 明明查了几个字段出来了 但是不知道为什么总是报告这个错误,无法解决。我也找不到错误在哪里
问题描述:
问题遇到的现象和发生背景
查询数据库的时候 明明查了几个字段出来了 但是不知道为什么总是报告这个错误,无法解决。我也找不到错误在哪里
问题相关代码,请勿粘贴截图
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) {
}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
答
貌似不是这里报的错,看提示说的是获取购物车记录数量的cart.getcount()获取的是空值,检查一下