2021-07-15

在Spring项目中,通常遵循三层架构,即REST层、Service层和DAO层。针对一个问题,是否应该在DAO层中同时修改两张表的数据?本文讨论了在DAO实现类中执行对两个表的更新操作的潜在问题和最佳实践,涉及事务管理和代码结构的合理性。
摘要由CSDN通过智能技术生成

标题@[TOC](在dao层中 一个方法做两个表的数据修改合理吗?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档




1. spring 的项目,三层结构 rest层 -> service -> dao 层 

2. dao层用的是JDBC,

3.想请教一下个位大佬,在dao层中对两张表数据进行修改合理吗?

4.这里是dao接口

```c
public interface SaasTenantDao  {


    /**
     * 查询租户信息
     */
    SaasTenantListVO findByUserInfo(String id);


5.这里是dao的实现类,请问在一个方法中,对两张表执行修改数据是不是有问题?

@Repository
public class SaasTenantDaoImpl implements SaasTenantDao {

    public static final Logger log =  LoggerFactory.getLogger(SaasTenantDaoImpl.class);

    @Autowired
    private JdbcTemplate jdbcTemplate;

  @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateListTenant(SaasTenantListVO tenantListVO) {
        String infoSql = "update tb_saas_info set update_time=?, ca_numbers=?,ca_saas_numbers=? where id=?";
        Object[] info = {tenantListVO.getUpdateTime(), tenantListVO.getCaNumbers(), tenantListVO.getCaSaasNumbers(), tenantListVO.getSaasId()};
        try {
            jdbcTemplate.update(infoSql, info);
        } catch (DataAccessException e) {
            throw new PkiException(SaasExceptionCode.TenantManagement.MODIFY_THE_ERROR);
        }
        String accountSql = "update tb_saas_account set user_name=?, user_phone=?, user_emali=? where saas_id =? and account=?";
        Object[] account = {tenantListVO.getUserName(), tenantListVO.getUserPhone(), tenantListVO.getUserEmali(), tenantListVO.getSaasId(), tenantListVO.getAccount()};
        try {
            jdbcTemplate.update(accountSql, account);
        } catch (DataAccessException e) {
            throw new PkiException(SaasExceptionCode.TenantManagement.MODIFY_THE_ERROR);
        }
    }


在线等个位大佬回答感谢.





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值