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语句是否出错