- dao 层使用DS注解,指定切换的数据源
public interface QiyelegalMapper {
/**
* 根据工单编号去主库中获取工单相关表的数据信息(不包括workform表)
* @param ids
* @return
*/
@DS("master")
List<Qiyelegal> selectAuditwronginfo(@Param("ids") List<String> ids);
/**
* 将获取到的相关表数据信息存储到备份库对应的表中
* @param auditwronginfos
* @return
*/
@DS("hotline")
int insertAuditwronginfo(@Param("auditwronginfos")List<Qiyelegal> auditwronginfos);
/**
* 删除主库中对应表的数据信息(包括workform表)
* @param ids
* @return
*/
@DS("master")
int deleteAuditwronginfo(@Param("ids") List<String> ids);
/**
* 根据工单编号去备份库中获取工单相关表的数据信息(包括workform表)
* @param ids
* @return
*/
@DS("hotline")
List<Qiyelegal> selectHotlineAuditwronginfo(@Param("ids") List<Long> ids);
/**
* 将获取到的相关表数据信息存储到目标库对应的表中
* @param auditwronginfos
* @return
*/
@DS("sqlServer")
int insertSqlServerAuditwronginfo(@Param("auditwronginfos")List<Qiyelegal> auditwronginfos);
}
- service 层
@Service
public class QiyelegalSerivceImpl implements QiyelegalSerivce {
@Autowired
private QiyelegalMapper qiyelegalMapper;
@Override
public List<Qiyelegal> selectAuditwronginfo(List<String> ids) {
return qiyelegalMapper.selectAuditwronginfo(ids);
}
@Override
public int insertAuditwronginfo(List<Qiyelegal> auditwronginfos) {
return qiyelegalMapper.insertAuditwronginfo(auditwronginfos);
}
@Override
public int deleteAuditwronginfo(List<String> ids) {
return qiyelegalMapper.deleteAuditwronginfo(ids);
}
@Override
public List<Qiyelegal> selectHotlineAuditwronginfo(List<Long> ids) {
return qiyelegalMapper.selectHotlineAuditwronginfo(ids);
}
@Override
public int insertSqlServerAuditwronginfo(List<Qiyelegal> auditwronginfos) {
return qiyelegalMapper.insertSqlServerAuditwronginfo(auditwronginfos);
}
}
- 业务处理逻辑,调用service 方法进行数据库切换操作,事务处理
@Service
public class SynchserivceImpl implements Synchservice {
@Autowired
private QiyelegalSerivce qiyelegalSerivce;
@DSTransactional
public void see(){
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("11");
//master对应的数据源查询数据
List<Qiyelegal> qiyelegals =qiyelegalSerivce.selectAuditwronginfo(arrayList);
if (!CollectionUtils.isEmpty(qiyelegals)) {
//存储到hotline
qiyelegalSerivce.insertAuditwronginfo(qiyelegals);
//存储到sql库
qiyelegalSerivce.insertSqlServerAuditwronginfo(qiyelegals);
// 删除master库
qiyelegalSerivce.deleteAuditwronginfo(arrayList);
}
}
}