009.MyBatis数据插入操作

1.数据库事务

 

 2.新增

 

 3.实现步骤

3.1 goods.xml  在插入的时候没有插入主键是因为主键设置成了自增字段,<selectKey >的作用是进行主键回填

<insert id="insert" parameterType="com.imooc.mybatis.entity.Goods" flushCache="true">
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>

3.2 测试

 /**
     * 新增数据
     *
     * @throws Exception
     */
    @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());
        }
        catch (Exception e)
        {
            if (session != null)
            {
                session.rollback();//回滚事务
            }
            throw e;
        }
        finally
        {
            MyBatisUtils.closeSession(session);
        }
    }

 

posted @ 2022-11-28 20:06  李林林  阅读(92)  评论(0编辑  收藏  举报