acesso a banco de dados em java usando jdbc

22
Acesso a Banco de dados com JDBC 12/09/2014

Upload: luiz-ricardo-silva

Post on 04-Jul-2015

325 views

Category:

Software


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Acesso a Banco de Dados em Java usando JDBC

Acesso a Banco de

dados com JDBC

12/09/2014

Page 2: Acesso a Banco de Dados em Java usando JDBC

Direitos Autorais

Você está autorizado e incentivado a distribuir este material.

Copie, compartilhe e modifique, apenas cite a fonte.

Page 3: Acesso a Banco de Dados em Java usando JDBC

Direitos Autorais

Luiz Ricardo

luizricardo.org

facebook.com/StateOfTheArtBlog

Page 4: Acesso a Banco de Dados em Java usando JDBC

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

Page 5: Acesso a Banco de Dados em Java usando JDBC

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

Page 6: Acesso a Banco de Dados em Java usando JDBC

JDBC

Arquitetura

Aplicação Java

JDBC API

JDBC Driver Manager

Oracle Driver MySQL Driver SQL Server Driver

Oracle MySQLSQL

Server

Page 7: Acesso a Banco de Dados em Java usando JDBC

Abrindo a Conexão

DriverManager

DriverManager.getConnection(

url, usuario, senha

);

Page 8: Acesso a Banco de Dados em Java usando JDBC

Abrindo a Conexão

DataSource

DataSource dataSource = ...

dataSource.getConnection();

Page 9: Acesso a Banco de Dados em Java usando JDBC

Conexão

Connection

Connection con =

DriverManager.getConnection(

url, usuario, senha);

Page 10: Acesso a Banco de Dados em Java usando JDBC

Consulta

Statement

Statement s = con.createStatement();

s.executeQuery("select * from TABELA")

Page 11: Acesso a Banco de Dados em Java usando JDBC

Consulta

PreparedStatement

PreparedStatement ps =

con.prepareStatement(

"select * from TABELA where id=?");

ps.setInt(1, id);

ps.executeQuery();

Page 12: Acesso a Banco de Dados em Java usando JDBC

Resultado

ResultSet

ResultSet rs = ps.executeQuery();

if (rs.next()) {

Integer id = rs.getInt("id"));

String descricao =

rs.getString("descricao");

}

Page 13: Acesso a Banco de Dados em Java usando JDBC

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) );

}

Page 14: Acesso a Banco de Dados em Java usando JDBC

Inserir

PreparedStatement ps =

con.prepareStatement(

"insert into TABELA (descricao)

values (?)");

ps.setString(1, descricao);

ps.executeUpdate();

Page 15: Acesso a Banco de Dados em Java usando JDBC

Atualizar

PreparedStatement ps =

con.prepareStatement(

"update TABELA set descricao = ?

where id = ? ");

ps.setString(1, descricao);

ps.setInt(2, id);

ps.executeUpdate();

Page 16: Acesso a Banco de Dados em Java usando JDBC

Apagar

PreparedStatement ps =

con.prepareStatement(

"delete TABELA where id = ?");

ps.setInt(1, id);

ps.executeUpdate();

Page 17: Acesso a Banco de Dados em Java usando JDBC

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);

Page 18: Acesso a Banco de Dados em Java usando JDBC

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

Page 19: Acesso a Banco de Dados em Java usando JDBC

Arquitetura de N Camadas

View (JSP)

Controller

Service

DAO

Banco de

Dados

Page 20: Acesso a Banco de Dados em Java usando JDBC

Exercício

• Crie uma tabela no banco de dados

• Implemente o respectivo DAO, utilizando o

modelo provido junto com este material

Page 21: Acesso a Banco de Dados em Java usando JDBC

Referências

• Java Tutorial– http://docs.oracle.com/javase/tutorial/jdbc/basics/

Page 22: Acesso a Banco de Dados em Java usando JDBC

Não tenha medo...

Dúvidas?