在dao层中 一个方法做两个表的数据修改合理吗?

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

  2. dao层用的是JDBC,

3.请教一个问题,在dao层中对两张表数据进行修改合理吗?

4.这里是dao接口

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);
        }
    }

service层根据业务需求调用dao层的方法访问数据库获取数据
分成service和dao两层可以使得一些方法不用重复写,提高代码复用性
把dao层分成两个方法 service调用这两个

最好分开来,一张表对应一个dao,当你需要操作两张表时,在service中调用这两张表的dao的具体方法即可

不合理噢,最好一个dao层处理一个业务逻辑一张表,service层分别调用两个dao即可

目前而言,dao层都是一些CRUD的方法,具体调用还是在service

dao层是原子性的 操作一个表的方法,事务在service层处理