acesso a banco de dados em java usando jdbc

Post on 04-Jul-2015

325 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

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

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.

Direitos Autorais

Luiz Ricardo

luizricardo.org

facebook.com/StateOfTheArtBlog

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

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

JDBC

Arquitetura

Aplicação Java

JDBC API

JDBC Driver Manager

Oracle Driver MySQL Driver SQL Server Driver

Oracle MySQLSQL

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

• 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

Arquitetura de N Camadas

View (JSP)

Controller

Service

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/

Não tenha medo...

Dúvidas?

top related