Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MyBatis春季交易_Java_Spring_Mybatis_Spring Transactions - Fatal编程技术网

Java MyBatis春季交易

Java MyBatis春季交易,java,spring,mybatis,spring-transactions,Java,Spring,Mybatis,Spring Transactions,我正在尝试正确使用spring提供的事务管理功能 我正在以以下方式创建sqlSessionFactor: 现在有一个称为“编程事务管理”的部分,它获取了transactionManager的引用,并使用该transactionManager执行rollback或commit,这取决于我们是否得到异常 现在我的问题是,在我的DAO层中,我应该显式地执行以下操作 public类UserDao扩展了sqlsessiondao支持{ PlatformTransactionManager tran

我正在尝试正确使用spring提供的事务管理功能

我正在以以下方式创建
sqlSessionFactor



现在有一个称为“编程事务管理”的部分,它获取了
transactionManager
的引用,并使用该
transactionManager
执行
rollback
commit
,这取决于我们是否得到异常

现在我的问题是,在我的DAO层中,我应该显式地执行以下操作

public类UserDao扩展了sqlsessiondao支持{
PlatformTransactionManager transactionManager;//使用bean属性连接
公共void插入器(整数用户ID){
试一试{
getSqlSession().insert(“user map.insertUser”,userId);
}捕获(例外e){
transactionManager.rollback(txStatus);
投掷e;
}
transactionManager.commit(txStatus);
}
}
或者仅使用以下内容(不使用编程事务)也将以事务方式执行所有插入

public类UserDao扩展了sqlsessiondao支持{
公共void插入器(整数用户ID){
getSqlSession().insert(“user map.insertUser”,userId);
}
}
我的映射程序文件如下所示:


请注意,我在
中有多个插入,我希望所有插入都发生或不发生

是我使用的另一个参考资料


因此,一个普遍的问题是,MyBatis是否会围绕我的
提供自动事务管理,或者我是否必须明确使用
transactionManager
来实现事务管理功能?

以下是您引用的文档中的引用:

MyBatis
SqlSession
为您提供了以编程方式处理事务的特定方法。但是当使用MyBatis Spring时,您的bean将被注入Spring管理的
SqlSession
或Spring管理的映射器。这意味着Spring将始终处理您的事务

使用您提供的设置,事务时间跨度完全由spring管理,即 你使用你不需要做任何额外的事情。Spring将在配置指向的点启动事务

启用声明性事务管理的简单方法是将以下内容添加到spring配置中:


然后在您的服务方法上使用
@Transactional

@服务
公共类MyService{
@自动连线
私有UserDao UserDao;
@交易的
公共addUser(用户){
userDao.insertUser(用户);
}
}
您提到的文档中的这一部分是关于您希望使用编程事务管理的(罕见)情况