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