插入数据成功,但是数据库表中没有该数据

插入数据成功,但是数据库表中没有该数据

插入数据成功,但是数据库表中没有该数据。却能通过Select语句查到

xml代码

<insert id="insert" parameterType="com.imooc.mybatis.entity.Goods">
    INSERT INTO t_goods(title, sub_title, original_cost, current_price, discount, is_free_delivery, category_id)
    VALUES (#{title} , #{subTitle} , #{originalCost}, #{currentPrice}, #{discount}, #{isFreeDelivery}, #{categoryId})
<selectKey resultType="Integer" keyProperty="goodsId" order="AFTER">
    select last_insert_id();
</selectKey>

</insert>

测试代码

@Test
public void testInsert() throws Exception {
    SqlSession session = null;
    try{
        session = MyBatisUtils.openSession();
        Goods goods = new Goods();
        goods.setTitle("测试商品");
        goods.setSubTitle("测试子标题");
        goods.setOriginalCost(200f);
        goods.setCurrentPrice(100f);
        goods.setDiscount(0.5f);
        goods.setIsFreeDelivery(1);
        goods.setCategoryId(43);
        //insert()方法返回值代表本次成功插入的记录总数
        int num = session.insert("goods.insert", goods);
        session.commit();//提交事务数据
        System.out.println(goods.getGoodsId());
        System.out.println(num);
    }catch (Exception e){
        if(session != null){
            //session.rollback();//回滚事务
        }
        throw e;
    }finally {
        MyBatisUtils.closeSession(session);
    }
}

运行结果

https://img1.sycdn.imooc.com//climg/64d86c04095ca23a13710433.jpg


程序虽然运行成功了,但在数据库表中却没有该数据

https://img1.sycdn.imooc.com//climg/64d86c2c090502ee14750338.jpg

却能通过select查询到,如下图

https://img1.sycdn.imooc.com//climg/64d86c530974af2615411066.jpg

这是什么原因


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,老师这里使用同学的代码是没有问题的。同学在执行完测试代码之后,是否对数据库表进行了刷新呢?数据库表是不会自动刷新的,实际上数据已经添加成功了,只不过没有在显示标签上进行更新,当手动刷新之后就可以看到数据了。

祝学习愉快~

  • _大臣呀 提问者 #1

    昨天在测试的时候刷新了,就插入有问题,数据更新和删除没有问题

    2023-08-14 10:58:34
  • 好帮手慕小蓝 回复 提问者 _大臣呀 #2

    同学你好,老师这里测试代码之后确实没有遇到这样的问题,所以无法确定具体是因为什么导致的。正常情况下,如果select语句可能查询到,那么说明数据确实已经添加到数据库了,此时有可能出现问题的就是可视化工具(例如Navicat等)。如果下次同学再遇到这样的情况,可以直接在黑窗口访问数据库,不使用可视化工具看一下数据表是否确实添加了数据。

    祝学习愉快~

    2023-08-14 11:52:00
  • _大臣呀 提问者 回复 好帮手慕小蓝 #3

    我搞错了,忘记可视化工具有分页了,问题已解决

    2023-08-14 12:10:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java工程师 2024版
  • 参与学习       2020    人
  • 提交作业       1249    份
  • 解答问题       1202    个

2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师