mejor manera de llamar a dos servidores de bases de datos

Supongamos que user_ides a long.

PreparedStatement psUserLocation = conB.prepareStatement("SELECT location FROM B.users WHERE user_id = ?");
while(rs.next()) {
    //call select statement for database B to get the location for each user id
    long userId = rs.getLong(user_id);
    psUserLocation.setLong(1, userId)
    ResultSet userLocation = ps.executeQuery();
    // Do whatever with the location(s)
}

EDITAR : una consulta para todos los usuarios en lugar de una consulta por usuario:

private final static String QUERY = "SELECT user_id, location FROM B.users WHERE user_id IN (%a)";

StringBuilder userList = new StringBuilder();
while(rs.next()) {
    long userId = rs.getLong(user_id);
    userList.append(userId);
    if (!rs.isLast()) {
        userList.append(",");
    }
}

String usersLocationQuery = QUERY.replaceAll("%a", userList.toString());
PreparedStatement psUsersLocation = conB.prepareStatement(usersLocationQuery);
ResultSet usersLocation = psUsersLocation.executeQuery();
// Do whatever with the locations

Tenga en cuenta que esto puede fallar / funcionar mal porque la mayoría de las bases de datos tienen un límite para la cantidad de elementos INque puede incluir una cláusula SQL . Además, este segundo método podría permitir una inyección SQL en el %areemplazo.

Respuesta 1

Puede usar el motor de almacenamiento FEDERADO . El motor de almacenamiento FEDERADO le permite acceder a los datos de una base de datos remota de MySQL sin utilizar la replicación o la tecnología de clúster. La consulta de una tabla FEDERADA local extrae automáticamente los datos de las tablas remotas (federadas). No se almacenan datos en las tablas locales. Puede que esto no sea muy eficiente, pero hará el trabajo (JOINs).

Respuesta: 2

Necesito saber si el horario de verano está activado ahora usando las nuevas clases de fecha y hora de Java 8. Encontré una entrada sobre cómo hacer esto en jodatime: jodatime cómo saber si el horario de verano está activado Pero, ¿cómo puedo ...

Estoy intentando subir el archivo. Funciona para mí, pero si quiero usar el archivo de carga no funciona. Recibo este error Estado HTTP 405: el método de solicitud 'POST' no es compatible, pero si comento esto ...

Estoy tratando de mostrar un archivo de imagen tan pronto como se selecciona de un selector de archivos. El selector de archivos está restringido a archivos .png y .jpg con los archivos seleccionados almacenados en una variable de tipo ...

Posible duplicado: es posible el polimorfismo sin herencia. Sé que se puede hacer mediante la anulación de métodos (herencia) y la implementación de interfaces. ¿Pero hay alguna otra manera posible? ...