1.Mybatis数据写操作操作

013.Mybatis数据插入操作_自动生成

 

 2.步骤

2.1 在good.xml中添加SQL语句

<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>

2.2 在MybatisTest.java中添加测试代码

/**
* 新增数据
* @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);
}
}

2.2.1  如何在插入成功后获得自动生成的主键(主键回填)

<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>

3.insert 的几个属性说明

013.Mybatis数据插入操作_自动生成_02