Boa tarde a todos,
Sou novo aqui no forum... E estou com um problema com Array. Seria o seguinte :
Tenho essa classe DAO, que esta dentro do pacote Persistence que faz uma consulta no banco de dados :
public List<Cargos> selectTodos(){
List<Cargos> listCargos = new ArrayList<Cargos>();
Connection conn = FabricaDB.getInstance().getConnection();
String SQL = "SELECT * FROM CARGOS";
try {
PreparedStatement stmt = conn.prepareStatement(SQL);
boolean result = stmt.execute();
if (result == true) {
ResultSet rs = null;
rs = stmt.getResultSet();
while (rs.next()){
Cargos cargo = new Cargos();
cargo.setCodigo(rs.getInt("CODIGO"));
cargo.setcodProfissao(rs.getInt("COD_PROFISSAO"));
cargo.setDescricao(rs.getString("DESCRICAO"));
listCargos.add(cargo);
}
return listCargos;
}else {
System.out.println("SQL retornou False");
return null;
}
} catch (SQLException e) {
System.out.println("Erro na execução do SQL " + e.getMessage());
return null;
}
}
Tenho essa classe Cargos que esta dentro do pacote model que faz a chamada desse metodo :
public List<Cargos> selectTodos(){
CargosDAO crgDAO = new CargosDAO();
List<Cargos> cargos = crgDAO.selectTodos();
return cargos;
}
Tenho essa classe CargosCNTR que esta dentro do pacote controler que faz a chamada do metodo da classe model e passa ela para um List de Strings
public class CargosCNTR {
public List<String[]> SelectTODOS(){
Cargos crg = new Cargos();
List<Cargos> listaCargos = crg.selectTodos();
List<String[]> vetlistaCargos = new ArrayList<String[]>();
String[] vBuffer = new String[3];
for (int i = 0; i < listaCargos.size(); i++){
vBuffer[0] = String.valueOf(listaCargos.get(i).getCodigo());
vBuffer[1] = String.valueOf(listaCargos.get(i).getcodProfissao());
vBuffer[2] = listaCargos.get(i).getDescricao();
vetlistaCargos.add(vBuffer);
}
return vetlistaCargos;
};
Bom… Seria assim : O Model solicita o DAO, que faz a consulta no banco de dados e passa para ele, o controller pega esses dados do model, e passa para um Array de Strings. Bom o problema e que quando vou chamar esse controler na view dessa forma
public static void main(String[] args) {
int i;
CargosCNTR crgCNTR = new CargosCNTR();
crgCNTR.SelectTODOS();
List<String[]> listCargos = crgCNTR.SelectTODOS();
System.out.println(listCargos);
}
}
O retorno que sai no console sai assim : [[Ljava.lang.String;@14a8cd1], Todo o codigo esta funcionando, mais acredito que deva ser algum problema de formatacao. Mais nao estou conseguindo enxergar onde possa ser… Alguem se habilita em me ajudar ? Aproveito para perguntar, o que dizem do metodo de busca e da separacao das classes !!! Agradeço antecipadamente…