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);
}
}