Como faço pra retornar todas as linhas e colunas de uma consulta em um array?
exemplo:
[code]
query = “SELECT * FROM dados”;
consultaDB(query);
public static String[] consultaDB(String query) {
String[] dados = new String[100];
dados[0] = “Selecione”;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(conexao, login, senha);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next())
for (int i = 1; i <= rsmd.getColumnCount(); i++){
dados[i] = rs.getString(rsmd.getColumnLabel(i));
System.out.println("Dados[" + i + "]: " + dados[i]);
}
stmt.close();
con.close();
} catch (Exception e) {
System.out.println(e);
}
return dados;
}[/code]
E a tabela
dados
nome
victor
alex
O problema é que quando eu quero retornar todos os valores, eles ficam armazenados um em cima do outro
tipo
dados[i] = victor
dados[i+1] = alex
e o se eu der
for(int …)
System.out.println(dados[i]);
ele so me mostra o ultimo registro
exemplo
syso -> alex
veja bem, vc tem um for dentro de while. Para cada iteraçãod o seu while ele vai refazer tudo no for 
usa um arraylist assim
ArrayList lista= new ArrayList()
lista.add(seuResultSet.getColuna());
já era…todos os dados da tabela
eu tinha que fazer isso com String[] pois estou usando JComboBox e ele só aceita String[] e não deu pra fazer com ArrayList
String[] referencias = consultaDB(“SELECT * FROM material”);
private JComboBox referencia = new JComboBox(referencias);
cara posso lhe dar uma dica?
de uma olhada em pool de conexao de uma olhada em mvc, e tente criar uma classe dados com os atributos de dados ai dentro do while voce vai incrementar esse objeto dados e vai adicionar ao arrayList por que essa incrementaçao com String ai ta muito feia e vai dar erro.
pra te ajuda posso tentar uma coisa aqui, mas vou dizendo que eu to sem programar tem uns 6 meses acompanho o forum aqui por que eu realmente gosto de java e fico vendo o q ta rolando, mas a classe de pool de conexões tem que ser uma classe singleton e voce tem q fazer o padrao de projeto DAO vo te dar alguns exemplos
Ps: lembrando que eu nao tenho IDE aqui o acesso a internet aqui no meu serviço é muito limitado.
[code]public class PoolConnection{
private static PoolConnection instance;
private string url = …;
private string user = …;
private string pass = …;
private PoolConnection (){
Connection…
}
public static PoolConnection getInstance(){
if (instance = null){
intance = private PoolConnection();
}else
return intance;
}
}[/code]
tem varios erros pois nao me lembro msm mas pro c pegar a conexao vc vai ter que ir na classe DAO que voce criar por exemplo DadosDAO e dar um PoolConnection.getInstance.getConnection(); get connection vai ter q ser outro metodo que voce vai ter que criar. mas é so pra vc ter uma ideia msm