每次执行@Insert会添加两次数据至数据库

发布时间 2023-09-17 01:18:12作者: 高桥芒果

很奇怪,起初不知道为何一次@Insert​会对数据库进行两次插入操作

因为代码十分简单,一共只有十几行,肯定不会觉得是自己写错了

之后找了很长一段时间资料,最后发现了三种解决这个bug的方法

    @Test
    public void MapperInsertTest() {
        Product product = new Product(null,"7fccaf","4a8cc","bd100","9hd1");
        productMapperInsert.insert(product);
//        获得商品ID
        Integer productId = product.getId();
        System.out.println(product);
        System.out.println(productId);
//        添加订单信息
        Order order = new Order(null,"17cn1podf11",productId,8,7,
                "d025","vom1a", LocalDateTime.now(),
                "caf","ef0c7e", (short) 4);
//        这里发生了报错
        orderMapperInsert.insert(order);
        System.out.println(order);
    }

解决方法一:关闭将IDE构建/运行委托给Maven

不推荐这个方法,idea会提示找不到包依赖

image

解决方法二:勾选跳过测试

image

解决方法三:使用mvn -test​(test生命周期)

最后发现只有点测试类前的小按钮才会报错,如果直接用mvn -test​则会产生正确的测试结果

image

使用mvn -test发现测试结果正确

​​image​​