java中mybatis手动提交事务_mybatis怎么处理事务问题

本文介绍了一个基于MyBatis的DAO层实现,包括如何进行批量保存和更新操作。探讨了在使用SqlSessionTemplate时如何配置或调用方法来实现多条SQL语句的同时提交,以及如何在遇到失败时回滚所有操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我用的mybatis是基于SqlSessionTemplate实现的,如下:

@Repository("daoSupport")

public class DaoSupport implements BaseDAO {

@Resource(name = "sqlSessionTemplate")

private SqlSessionTemplate sqlSessionTemplate;

/**

* 保存对象

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object save(String str, Object obj){

return sqlSessionTemplate.insert(str, obj);

}

/**

* 批量更新

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object batchSave(String str, List objs){

return sqlSessionTemplate.insert(str, objs);

}

/**

* 修改对象

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object update(String str, Object obj){

Integer count=sqlSessionTemplate.update(str, obj);

@Service

public class OrderInfoService {

@Resource(name = "daoSupport")

private DaoSupport dao;

@SuppressWarnings("unchecked")

public List getPerson() {

List a =(List)dao.findAllList(

"OrderInfoMapper.getOrderInfo");

return a;

}

public void save(PageData pd){

dao.save("OrderInfoMapper.saveOrderInfo", pd);

}

public void update(PageData pd){

dao.update("OrderInfoMapper.updateOrder", pd);

}

@SuppressWarnings("unchecked")

public List list(PageData pd){

return (List)dao.findForList("OrderInfoMapper.getOrderInfo", pd);

}

在xml文件里面写对应sql的Mapper,

我想在调用service层的方法操作数据库时,几条sql语句同时commit,其中有一条失败则全部不执行,就和jdbc那样先设置不自动commit,然后在commit那种,要在哪里配置或调用啥方法实现?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值