Acesso a Banco de Dados em Java usando JDBC

1.445 visualizações

Publicada em

Slides para aula de como acessar bancos de dados em Java usando JDBC.

A apresentação é curta, mas inclui as principais informações sobre a API JDBC (DataSource, Connection, Statement, PreparedStatement) e exemplos de código para explanação.

O código-fonte de exemplo está disponível no GitHub: https://github.com/utluiz/jdbc-example

Publicada em: Software
  • Seja o primeiro a comentar

Acesso a Banco de Dados em Java usando JDBC

  1. 1. Acesso a Banco de dados com JDBC 12/09/2014
  2. 2. Direitos Autorais Você está autorizado e incentivado a distribuir este material. Copie, compartilhe e modifique, apenas cite a fonte.
  3. 3. Direitos Autorais Luiz Ricardo luizricardo.org facebook.com/StateOfTheArtBlog
  4. 4. JDBC • JDBC é uma interface de acesso padrão a bancos de dados relacionais (SGBDR) • É uma API, portanto precisa de implementações • Gerencia a conexão e o protocolo de comunicação com o banco • O acesso é por SQL Java DataBase Connectivity
  5. 5. JDBC • Praticamente todos os bancos de dados fornecem Drivers JDBC • Comandos SQL são nativos e não portáveis (a não ser os comandos básicos no padrão ANSI) Interoperabilidade
  6. 6. JDBC Arquitetura Aplicação Java JDBC API JDBC Driver Manager Oracle Driver MySQL Driver SQL Server Driver Oracle MySQL SQL Server
  7. 7. Abrindo a Conexão DriverManager DriverManager.getConnection( url, usuario, senha );
  8. 8. Abrindo a Conexão DataSource DataSource dataSource = ... dataSource.getConnection();
  9. 9. Conexão Connection Connection con = DriverManager.getConnection( url, usuario, senha);
  10. 10. Consulta Statement Statement s = con.createStatement(); s.executeQuery("select * from TABELA")
  11. 11. Consulta PreparedStatement PreparedStatement ps = con.prepareStatement( "select * from TABELA where id=?"); ps.setInt(1, id); ps.executeQuery();
  12. 12. Resultado ResultSet ResultSet rs = ps.executeQuery(); if (rs.next()) { Integer id = rs.getInt("id")); String descricao = rs.getString("descricao"); }
  13. 13. Vários Resultados ResultSet ResultSet rs = ps.executeQuery(); List<MeuObjeto> lista = new ArrayList<MeuObjeto>(); while (rs.next()) { Integer id = rs.getInt("id")); String descricao = rs.getString("descricao"); lista.add( new MeuObjeto(id, des) ); }
  14. 14. Inserir PreparedStatement ps = con.prepareStatement( "insert into TABELA (descricao) values (?)"); ps.setString(1, descricao); ps.executeUpdate();
  15. 15. Atualizar PreparedStatement ps = con.prepareStatement( "update TABELA set descricao = ? where id = ? "); ps.setString(1, descricao); ps.setInt(2, id); ps.executeUpdate();
  16. 16. Apagar PreparedStatement ps = con.prepareStatement( "delete TABELA where id = ?"); ps.setInt(1, id); ps.executeUpdate();
  17. 17. Procedimentos CallableStatement CallableStatement cs = con.prepareCall( "{call MINHA_PROC(?, ?)}" ); cs.setString(1, parametroUm); cs.registerOutParameter(2, Types.VARCHAR); cs.executeQuery(); String retorno = cs.getString(2);
  18. 18. DAO • Um objeto que provê uma interface que abstrai o acesso a dados • Lê e grava os dados na origem de dados (banco de dados, arquivo, memória, etc.) • Encapsula o acesso aos dados, de forma que as demais classes não precisam saber sobre isso Data Access Object
  19. 19. Arquitetura de N Camadas View (JSP) Controller Service DAO Banco de Dados
  20. 20. Exercício • Crie uma tabela no banco de dados • Implemente o respectivo DAO, utilizando o modelo provido junto com este material
  21. 21. Referências • Java Tutorial – http://docs.oracle.com/javase/tutorial/jdbc/basics/
  22. 22. Não tenha medo... Dúvidas?

×