使用mybatisplus出现报错

public Order selectGoodsId(String goodsId){
    QueryWrapper<Order> wrapper = new QueryWrapper<>();
    wrapper.eq("goodsId",goodsId);
    return orderMapper.selectOne(wrapper);
}

public int insertOrder(Order order){
    return orderMapper.insert(order);
}

public int updateOrder(Order order){
    return orderMapper.updateById(order);
}

@Test
void contextLoads() {
    try{
        //创建json解析器
        JsonParser parser=new JsonParser();
        //解析对象
        //test.json文件中有字符串型,整型,布尔型
        JsonObject object=(JsonObject) parser.parse(new FileReader("src/main/resources/order.json"));
        //读取json数组
        JsonArray array=object.get("order").getAsJsonArray();
        Order order = new Order();

/* for (int i = 0; i < array.size(); i++) {*/
order.setOrderId(object.get("orderId").getAsString());
JsonObject subObject=array.get(0).getAsJsonObject();
order.setGoodsId(subObject.get("goodsId").getAsString());
System.out.println("orderId="+order.getGoodsId());
order.setName(subObject.get("name").getAsString());
order.setNumber(subObject.get("number").getAsInt());

            Order order1 = selectGoodsId(order.getGoodsId());     //这一段报错

            if(order1!=null){
                order1.setNumber(order.getNumber()+order1.getNumber());
                updateOrder(order1);
            }else {
                insertOrder(order);
            }

为什么会报错
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order
WHERE (goodsId = '1001')' at line 1

用的mybatisplus,为什么sql语句最后面会多一个单引号?

或许应该让我们看下mapper.xml文件中的对应代码,便于解决问题

mybatisplus是基于mybatis,sql可以直接从配置文件中自己写,这样就可以避免添加多余字符问题。

可以打印出执行的sql 查出具体的问题,如果是xml配置文件,建议检查xml文件配置的sql语句是否出错