Oi, estou iniciando em java e tenho um form de pesquisa genérico, posso usa-lo para pesquisar cliente, funcionario qq coisa ao clicar no botao passo a query que devera rodar e o nome das colunas a serem exibidas, na hora de adicionar os dados retornados do banco ja que virao em tempo de execução eu nao tenho como pre-determinar o tipo dos dados, andei lendo e vi algo sobre reflectrion mas nao entendi como faço para usar, todos os exemplos pegam os atributos de uma classe.
Há como usar reflection para saber o tipo de dado do campo que está vindo de um recordset
Meu cod é mais ou menos assim:
while (rs.next()) {
String[] lin = new String[col1.length];
ArrayList Lin1 = new ArrayList();
Lin1.add(rs.getString(col1[0]));
Nesse ex. coloquei rs.getString mas em tempo de execução como faço para saber este tipo?? Se uso getString, getDouble, getInt…
[quote=Analia]Oi, estou iniciando em java e tenho um form de pesquisa genérico, posso usa-lo para pesquisar cliente, funcionario qq coisa ao clicar no botao passo a query que devera rodar e o nome das colunas a serem exibidas, na hora de adicionar os dados retornados do banco ja que virao em tempo de execução eu nao tenho como pre-determinar o tipo dos dados, andei lendo e vi algo sobre reflectrion mas nao entendi como faço para usar, todos os exemplos pegam os atributos de uma classe.
Há como usar reflection para saber o tipo de dado do campo que está vindo de um recordset
Meu cod é mais ou menos assim:
while (rs.next()) {
String[] lin = new String[col1.length];
ArrayList Lin1 = new ArrayList();
Lin1.add(rs.getString(col1[0]));
Nesse ex. coloquei rs.getString mas em tempo de execução como faço para saber este tipo?? Se uso getString, getDouble, getInt…[/quote]
Vc pdoe usar rs.getObject() mas o seu problema é resolvido de outra forma.
Os dados têm que estar associados a metadados. Esses metadados podem estar na classe final que será preenchida pelos dados ou à parte.
a ideia é que os metadados dizem qual tipo de dado cada campo tem. dsta forma vc pode usar re.getXXX comforme o tipo. (Não use arrayList para pegar os dados, use um objeto com atributos)