Para começar vou demonstrar como fazer um Select em uma tabela no banco de dados e armazenar em uma ArrayList.
Para começar vamos criar nossa classe para conecção com o banco de dados, estarei utilizando o mysql
public class ConnectionFactory { public static Connection getConnection(){ Connection cnn = null; try{ Class.forName("com.mysql.jdbc.Driver").newInstance(); cnn = DriverManager.getConnection("jdbc:mysql://localhost/crud", "root", "root"); } catch (Exception e) { e.printStackTrace(); } return cnn; } }
Temos a seguinte tabela no banco de dados, Cliente com os campo Nome e Idade, vamos implementa-la no java.
public class Cliente { private String nome; private Integer idade; //Getters e Setters }
Insira alguns dados no banco de dados
Insert into Cliente values ('Cristiano', 22); Insert into Cliente values ('Fabio', 15); Insert into Cliente values ('Joao', 135); Insert into Cliente values ('Pedro', 11); Insert into Cliente values ('Maria', 53);
Agora vamos criar nossa classe que ira fazer o select e armazenar na ArrayList
public class ClienteCrud { public List<cliente> clientes = new ArrayList<cliente>(); public void listar(){ ResultSet rs = null; Connection cnn = ConnectionFactory.getConnection(); try { PreparedStatement sql = cnn.prepareStatement("select * from cliente"); rs = sql.executeQuery(); while(rs.next()){ Cliente cliente = new Cliente(); cliente.setNome(rs.getString("nome")); cliente.setIdade(rs.getInt("idade")); clientes.add(cliente); } } catch (SQLException e) { e.printStackTrace(); } } }
Vamos entender o que acontece na classe ClienteCrud, é criar uma ArrayList de Cliente, isso significa que só é possível inserir objetos do tipo Cliente nessa lista.
No metodo Listar é criado um ResultSet para armazenar o resultado do select, é feito a connecção com o banco de dados, após isso fazemos o select, executamos a query guardamos o resultado no ResultSet, agora vamos a parte em que armazenamos o resultado(s) no arrayList.
Fazemos um while(rs.next()) que significa que enquanto existir um próximo resultado ele vai continuar fazendo o loop, agora a parte que nos interessa, é criado um novo objeto Cliente setado o nome e a idade com o resultado do select e adicionado o Objeto Cliente a lista.
Agora vamos finalmente mostrar esse resultado na tela
public class ClienteView { public static void main(String[] args) { ClienteCrud cc = new ClienteCrud(); cc.listar(); System.out.println("--------\nSem Classificação \n--------"); for (Cliente c : cc.clientes) { System.out.println(c.getNome()); System.out.println(c.getIdade()); } } }
Iremos obter
--------
Sem Classificação
--------
Nome: Cristiano
Idade: 22
Nome: Fabio
Idade: 15
Nome: Joao
Idade: 135
Nome: Pedro
Idade: 11
Nome: Maria
Idade: 53
No proximo post irei demostrar como fazer a classificação dessa lista com Comparator e Comparable.
Como armazenar o objeto cliente que teriam os atributos nome e idade em outra tabela?
ResponderExcluirGostaria de uma ajuda com essa dúvida.
ResponderExcluirTenho um questionamento. Estou desenvolvendo uma aplicação e tou utilizando o WampServer. Criei as tabelas e tou conseguindo pegar as informações do banco. Caso eu queira vender essa aplicação como devo proceder? tipo eu gero um .jar do meu arquivo e como faço para passar o banco de dados?
ResponderExcluir