鹤鹤无名
2021-07-15 00:25
采纳率: 100%
浏览 21
已采纳

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 404警告 2021-07-15 08:58
    已采纳

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

    1 打赏 评论
  • Bosen的技术分享栈 2021-07-15 07:56

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

    1 打赏 评论
  • 11Jeffrey 2021-07-15 10:05

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

    1 打赏 评论
  • 林林林林七 2021-07-15 10:23

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

    1 打赏 评论
  • 咕泡-子贡 2021-07-15 13:40

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

    1 打赏 评论

相关推荐 更多相似问题