quarta-feira, 23 de fevereiro de 2011

Tansformando ResultSet em Array de Strings

Transformando ResultSet em Array de String

Nesse artigo pretendo mostrar na pratica como converter um objeto do tipo ResultSet para um Array de String. É uma função simples que pode ser útil usada junto com componente Swing como JTable. Segue os passos.
1. Declarar objetos header e body quer serão usados para armazenar de forma temporária os resultados.
2. Consultar as informações no banco de dados obtendo como retorno um objeto ResultSet.
3. Passar as informações do ResultSet para o Array de String.
4. Retornar para o método chamador o Array.




/*
* SITE :http://javaex.criarumblog.com
* AUTOR :Rafael Bezerra Cavalcante
* DATA : 20/02/2011
*
* Esse matérial pode ser copiado e distribuido a vontade.
*/

package banco;
import java.sql.*;

public class Oracle {
/*
* No Exemplo, segue os dados do banco:
* HOST : localhost
* PORTA : 1521
* BANCO : XE
*
* USUARIO :usuario
* SENHA :senhaDoBanco
*/
private Connection minhaConexao ;
private String host = "localhost" ;
private String porta = "1521" ;
private String sid = "XE" ;
private String usuario = "usuario" ;
private String senha = "senhaDoBanco" ;
private String header[] ;
private String body[][] ;
public boolean erro ;
public String erroMsg ;

public void conectar()throws ClassNotFoundException, SQLException{
Class.forName("oracle.jdbc.driver.OracleDriver");
minhaConexao =DriverManager.getConnection("jdbc:oracle:thin:@"+host+":"+porta+":"+sid,usuario,senha);
}

public void fechar() throws SQLException{
this.minhaConexao.close();
}


/*
Essa função faz a carga dos objeto da classe header e body.
*/
public void executeQueryVoid(String sql) throws ClassNotFoundException, SQLException{
this.erro=false;
this.erroMsg="";
this.conectar();
Statement st = this.minhaConexao.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.executeQuery(sql);
int j=0;
ResultSetMetaData metaData = rs.getMetaData();
int columns = metaData.getColumnCount();
rs.last();
int size = rs.getRow();
rs.beforeFirst();
this.header=new String[metaData.getColumnCount()];
this.body=new String[size][metaData.getColumnCount()];
while(rs.next()) {
for(int i=0;i if(j==0)
this.header[i]=metaData.getColumnName(i+1);
int tipo=metaData.getColumnType(i+1);
System.out.println(tipo);
if(tipo==2)
this.body[j][i]=""+rs.getInt(i+1);
else
this.body[j][i]=rs.getString(i+1);
}
j++;
}
this.fechar();
}

/*
* Essa função serve para retornar o array do body.
*/
public String[][] executeQueryArray(String sql){
try{
this.executeQueryVoid(sql);
return this.body;
}catch(Exception e){
this.erro=true;
this.erroMsg=e.getMessage();
return null;
}
}


}

Nenhum comentário:

Postar um comentário