What is the method for handling transactions in MyBatis?
There are two methods for handling transactions in MyBatis.
- Control transactions using programs: Use the SqlSession object from MyBatis to invoke methods such as beginTransaction(), commit(), rollback() in order to control the submission and rollback of transactions.
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
// 开启事务
sqlSession.beginTransaction();
// 执行业务逻辑
// 提交事务
sqlSession.commit();
} catch (Exception e) {
// 回滚事务
sqlSession.rollback();
} finally {
sqlSession.close();
}
- You can configure transaction propagation behavior and isolation level for Mapper interface methods using annotations or XML configuration.
@Mapper
public interface UserMapper {
@Insert("insert into user(name, age) values(#{name}, #{age})")
@Transactional
void insert(User user);
}
Alternatively, you can configure it in the XML file.
<transactionManager type="JDBC" />
<mappers>
<mapper resource="UserMapper.xml" />
</mappers>
The method of choice depends on the developer’s needs and preferences.