插入数据成功,但是数据库表中没有该数据
插入数据成功,但是数据库表中没有该数据。却能通过Select语句查到
xml代码
1 2 3 4 5 6 7 8 | < 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 > |
测试代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | @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); } } |
运行结果
程序虽然运行成功了,但在数据库表中却没有该数据
却能通过select查询到,如下图
这是什么原因
11
收起
正在回答
1回答
同学你好,老师这里使用同学的代码是没有问题的。同学在执行完测试代码之后,是否对数据库表进行了刷新呢?数据库表是不会自动刷新的,实际上数据已经添加成功了,只不过没有在显示标签上进行更新,当手动刷新之后就可以看到数据了。
祝学习愉快~
Java工程师 2024版
- 参与学习 2036 人
- 提交作业 1407 份
- 解答问题 1267 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧