MyBatis事务操作

功能:从应用程序角度出发,软件具有哪些功能.

业务:完成功能时的逻辑.对应 Service 中一个方法

事务:从数据库角度出发,完成业务时需要执行的 SQL 集合,统称一个事务.

事务回滚.如果在一个事务中某个 SQL 执行事务,希望回归到事务的原点,保证数据库数据的完整性.

在mybatis中默认是关闭了 JDBC 的自动提交功能。每一个 SqlSession 默认都是不自动提交事务.于是利用mybatis进行增删改操作时应该手都动交事务–session.commit(),操作失败发生异常应该回滚事务–seesion.rollback()

openSession(true);自动提交.setAutoCommit(true);

  • mybatis底层是对JDBC的封装.
    • JDBC 中 executeUpdate()执行新增,删除,修改的 SQL.返回值 int,表示受影响的行数.
    • mybatis中<-insert><-delete><-update>标签没有 resultType 属性,默认认为返回值都是 int
    • 在 openSession()时 Mybatis 会创建 SqlSession 时同时创建一个Transaction(事务对象),同时 autoCommit 都为 false

MyBatis 实现新增

在 mapper.xml 中使用<-insert>标签,标签没有返回值类型

通过 session.insert()调用新增方法 返回值为int类型

MyBatis 实现修改

在 mapper.xml 中提供<-update>标签标签没有返回值类型

通过 session.update()调用更新方法 返回值为int类型

MyBatis 实现删除

在 mapper.xml 中提供<-delete>标签标签没有返回值类型

通过 session.delete()调用更新方法 返回值为int类型