增加:
<!-- 增加操作 public int insert (Flower fl) -->
<!-- 不需要指定resulttype, sqlsession.insert函数却有返回值,返回的是插入的行数 -->
<insert id="insert">
insert into flower values(default,#{name},#{price},#{production})
</insert>
Test中测试代码使用:
InputStream stream = Resources.getResourceAsStream("mybatis.xml");
//获得session工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(stream);
//获得session对象
SqlSession session = factory.openSession();
Flower fl =new Flower(6, "随便花123",50, "支付宝");
//【A】添加操作
int update1 = session.insert("com.bjsxt.mapper.FlowerMapper.insert", fl);
执行到这,运行会发现,数据库中没有被插入的数据,这是因为mybatis默认不会提交事务,数据进保存到内存中,没有被提交保存到硬盘,需要手动提交
session.commit();
或者是提前设置自动提交事务
SqlSession session = factory.openSession(true);
改:
<!--修改操作 public int update(Flower fl) -->
<update id="update">
update flower set name=#{name},price=#{price},production=#{production} where id=#{id}
</update>
Flower fl =new Flower(6, "随便花12",5, "付宝");
// 【B】修改操作
int update2 = session.update("com.bjsxt.mapper.FlowerMapper.update", fl);
session.commit();
删
<!--删除操作 public int delete(int id) 举例根据id删除 -->
<delete id="delete">
delete from flower where id=#{param1}
</delete>
// 【C】删除操作
int update3 = session.delete("com.bjsxt.mapper.FlowerMapper.delete", 6);
session.commit();