前言:本项目MyBatis和Hibernate公用同一个DataSource对象,而Jdbc用另外一个新建的DataSource对象。
一、测试Mybatis、Hibernate、Jdbc都是更新同一张表
/**
* 事务级别为REQUIRED
*/
@Override
public void test() throws Exception {
schoolMapper.updateSchool();//mybatis执行sql语句:"update td_school set id= '2'"
schoolManager.saveCommonData("update td_school set name= '3'");//hibernate执行sql语句
Connection connection = dataSource.getConnection();
JdbcUtils.executeUpdate(connection, "update td_school set code = '4'", new ArrayList<Object>());//jdbc执行sql语句
}
由于上面Mybatis、Hibernate、Jdbc都是更新td_school表,所以会报错:Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction,大概说这张表表被锁了。