spring 的项目,三层结构 rest层 -> service -> dao 层
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层处理