Acesso a Banco de dados com JDBC 12/09/2014
Direitos Autorais Você está autorizado e incentivado a distribuir este material. Copie, compartilhe e modifique, apenas cite a fonte.
luizricardo.org facebook.com/StateOfTheArtBlog Direitos Autorais Luiz Ricardo luizricardo.org facebook.com/StateOfTheArtBlog
Java DataBase Connectivity JDBC Java DataBase Connectivity 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
JDBC Interoperabilidade 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)
JDBC Arquitetura Aplicação Java JDBC API JDBC Driver Manager Oracle Driver MySQL Driver SQL Server Driver Oracle MySQL SQL Server
Abrindo a Conexão DriverManager DriverManager.getConnection( url, usuario, senha );
Abrindo a Conexão DataSource DataSource dataSource = ... dataSource.getConnection();
Conexão Connection Connection con = DriverManager.getConnection( url, usuario, senha);
Consulta Statement Statement s = con.createStatement(); s.executeQuery("select * from TABELA")
Consulta PreparedStatement PreparedStatement ps = con.prepareStatement( "select * from TABELA where id=?"); ps.setInt(1, id); ps.executeQuery();
Resultado ResultSet ResultSet rs = ps.executeQuery(); if (rs.next()) { Integer id = rs.getInt("id")); String descricao = rs.getString("descricao"); }
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) ); }
Inserir PreparedStatement ps = con.prepareStatement( "insert into TABELA (descricao) values (?)"); ps.setString(1, descricao); ps.executeUpdate();
Atualizar PreparedStatement ps = con.prepareStatement( "update TABELA set descricao = ? where id = ? "); ps.setString(1, descricao); ps.setInt(2, id); ps.executeUpdate();
Apagar PreparedStatement ps = con.prepareStatement( "delete TABELA where id = ?"); ps.setInt(1, id); ps.executeUpdate();
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);
DAO Data Access Object 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
Arquitetura de N Camadas View (JSP) Controller Service Você está aqui DAO Banco de Dados
Exercício Crie uma tabela no banco de dados Implemente o respectivo DAO, utilizando o modelo provido junto com este material
Referências Java Tutorial http://docs.oracle.com/javase/tutorial/jdbc/basics/
Dúvidas? Não tenha medo...