Вставить одни и те же данные в несколько баз данных, используя Spring Control и jpa - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть требование написать простое приложение для записи некоторых значений в БД.

По сути, это некоторая повторяющаяся задача, которая должна выполняться довольно часто, и я хочу создать простое загрузочное приложение Spring с Пользовательский интерфейс выставлен так, что это может быть сделано автоматически c способом.

У меня есть класс сущности с простым POJO MyClient, я написал контроллер и классы обслуживания и могу получать и отправлять сообщения в БД :

Мой App.properties выглядит следующим образом:

spring.datasource.url=jdbc:oracle:thin:@db-host-1:1521/xxx.xx.intern
spring.datasource.username=root
spring.datasource.password=root

// Класс контроллера

@GetMapping("/clients")
public List<MyClient> retrieveAllClientVersions(){
        return myClientService.listAllClientVersions();
}

@RequestMapping(value = "/client/add", method = RequestMethod.POST)
@ResponseBody
    void addNewClientVersion(@RequestBody MyClient myClient){
        myClientService.addNewClientVersion(myClient);
}

// Класс обслуживания

private MyClientRepository myClientRepository;

@Autowired
public MyClientService(MyClientRepository myClientRepository){
        this.myClientRepository=myClientRepository;
}

public List<MyClient> listAllClientVersions(){
        List<MyClient> myClients=new ArrayList<>();
        myClientRepository.findAll().forEach(myClients::add);
        return myClients;
}

public void addNewClientVersion(MyClient myClient){
        myClient.setReleaseKeyVersion(RELEASE_KEY_VERSION);
        myClient.setClientVersion(myClient.getClientVersion());
        myClient.setDescription(DESCRIPTION);
        myClient.setReleaseCertDn(DGV_RELEASE_CERT_DN);
        myClient.setStatus(STATUS);
        myClient.setClientSecurityProfileDbId(CLIENT_SECURITY_PROFILE_DB_ID);
        myClient.setIssuerDbId(ISSUER_DB_ID);
        myClientRepository.save(myClient);
}

У нас около 50 тестовых сред, где мне нужно выполнить один и тот же запрос. Я хотел создать пользовательский интерфейс, в котором я могу установить флажки для всей среды с помощью кнопок, таких как GET и POST.

Независимо от того, какую среду пользователь выбирает из флажков и говорит POST, «Вставка» должна выполняться во всех этих средах.

Как это можно сделать? Есть ли способ, что на основе параметра запроса в запросе POST вставка может быть запущена на другой БД. Как мы подключаемся к разным БД во время выполнения? Что может быть лучшим способом сделать это?

...