Introdução ao JDBC - BarreirasJUG

Post on 18-Dec-2014

263 views 2 download

description

Apresentação utilizada na palestra de introdução ao JDBC com o objetivo de mostrar uma conexão simples com um banco de dados e envio de alguns comandos.

Transcript of Introdução ao JDBC - BarreirasJUG

JDBC – API

Pedro Henrique

Grupo de Usuários Java de Barreiras/BA - BarreirasJUG

Java e Bancos de dados

Persistência Gravar dados em memórias não voláteis Uns 90% das aplicações precisam deste recurso Linguagens orientadas aos dados (Dbase, FoxBase,

Clipper, CA-Visual Objects. Persistir nem sempre quer dizer Bancos de Dados

Relacionais(Arquivos padrões, arquivos de texto, etc.)

É a única forma ? (Hibernate, ibates, Prevayler, etc.) Vantagens e desvantagens dos frameworks de

persistência. (SQL escrito vs SQL gerado) SQL ANSI – Programa independente de Banco, será

mesmo JDBC ?

Introdução

Como funciona ?

Conecte-se ao banco de dados Através da interface

Envie os comandos de pesquisa e atualização dos dados

Recupere os resultados da execução

Exemplo

public void connectToAndQueryDatabase(String username, String password) {

Connection con = DriverManager.getConnection( "jdbc:myDriver:myDatabase", username, password); Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");

while (rs.next()) {

int x = rs.getInt("a");

String s = rs.getString("b");

float f = rs.getFloat("c");

}

}

Driver / Implementação

JDBC / ODBC – Ponte para os drivers do sistema operacional Windows.

Nativo – Escritos e C e C++ Middleware Driver – Software

especializado Puramente Java – Classes que acessam o

banco no nível mais baixo.

Explicação

ConnectionManager – Provê conexão de banco.

Statement – Envia comandos sql para a conexão.

ResultSet – Encapsula o resultado dos comandos enviados.

Url de acesso, usuário e senha

jdbc:mysql://localhost:3306/banco_dados

Outro exemplo

Executando atualizações/inserçõesconn.prepareStatment()stmt.set...()stmt.executeUpdate()

Mas um comando de cada vez, consome tempo....

Outro exemplo (batch)

Perguntas

Pedro Henrique Skype: pedrohenrique_mauricea Twitter: @ibotirama E-mail: pedro.henrique1@gmail.com blog.efacilsistemas.com.br