olá gostaria de melhorar meu codigo de RMI pois ele está fazendo várias chamadas ao servidor remoto (Ele faz N+2 chamadas) e gostaria que ficasse só 1 chamada como faço ? o código atual é o seguinte :
classe JRimp.java
/[color=red]** Executa uma consulta SQL com uma clausula WHERE */
public void performSearch(int id, String searchString) throws RemoteException, SQLException {
jrc[id].performSearch(searchString);
}
/** Percorre a proxima linha a partir do resultado da consulta */
public String getNextRow(int id) throws RemoteException, SQLException {
return jrc[id].getNextRow();
} [/color]
onde o metodo performsearch e getNextRow acessa essa outra classe por polimorfismo:
JRConnection.java
[color=red]
/** Faz uma consulta SQL com uma clausula WHERE */
public void performSearch(String query) throws SQLException {
// Constroi a consulta SQL
query="SELECT id_cliente, nome, sobrenome, salario FROM clientes " + query;
stmt=con.createStatement();
rs=stmt.executeQuery(query);
}
/** Alcanca a proxima linha no conjunto do resultado, retornando null quando pronto */
public String getNextRow() throws SQLException {
if (rs.next()) {
return rs.getInt("id_cliente")+", "
+ rs.getString("nome")+", "
+ rs.getString("sobrenome")+", "
+ rs.getString("salario");
}
/** fim do conjunto de resultados; fechamento da pesquisa */
rs.close();
rs=null;
stmt.close();
stmt=null;
return null;
} [/color]
entendeu ele chama o metodo getNextRow recursivamente e a cada nova chamada ele conecta o servidor remoto entao se o banco de dados tiver N registros ele vai acessar N+2 vezes o banco de dados , ou seja , eu queria reduzir só para 1 chamada ao servidor.
Resumindo a opera: como faço um unico metodo na classe JRImpl.java sem alterar a classe JRConnection.java.