Você está na página 1de 22

Bancos de dados e JDBC

Aula 01

Prof. Fabiano Madeira

Esta aula tem como objetivo


apresentar:
Plano de ensino
Banco de dados com JDBC
Estratgia de trabalho: aula
expositiva dialogada e exerccios.

Bancos de dados e JDBC

Ao trmino dessa aula voc ser capaz


de:
conectar-se a um banco de dados
qualquer atravs da API JDBC;
criar uma fbrica de conexes usando o
design pattern Factory;
pesquisar dados atravs de queries;
Prof. Fabiano Madeira

POR QUE USAR UM BANCO DE DADOS?

Sistemas usam bancos de dados para


permitir consultas futuras, gerao de
relatrios e alteraes nas informaes.
Informaes devem ser mantidas
organizadas e prontas para consultas.
A maioria dos bancos de dados so
chamados relacionais.
Prof. Fabiano Madeira

POR QUE USAR UM BANCO DE DADOS?

Usaremos o MySQL.
gratuito, fcil de instalar.
Fcil de acessar.
O processo de armazenamento de
dados chamado de persistncia.
A biblioteca de persistncia do Java
chamada de JDBC
Prof. Fabiano Madeira

A CONEXO EM JAVA

Temos um conjunto de interfaces


dentro do pacote java.sql.
a interface Connection define mtodos
para executar queries, comitar a
transao e fechar a conexo.
As classes concretas so chamadas de
driver.
Prof. Fabiano Madeira

A CONEXO EM JAVA

Todos os principais bancos de dados


possuem drivers JDBC para utilizarmos
com Java.

Prof. Fabiano Madeira

A CONEXO EM JAVA

A classe DriverManager a responsvel


por se comunicar com todos os drivers.
Usamos o mtodo getConnection com
uma String que indica a qual banco nos
conectar.

jdbc:mysql://ip/nome_do_banco
Prof. Fabiano Madeira

A CONEXO EM JAVA

public class JDBCExemplo {


public static void main(String[] args) throws
SQLException {
Connection conexao = DriverManager.getConnection(
"jdbc:mysql://localhost/impacta");
System.out.println("Conectado!");
conexao.close();
}
}
Prof. Fabiano Madeira

A CONEXO EM JAVA

Devemos tratar a SQLException


Precisamos sempre para fechar todas as
conexes que foram abertas.
Ao testar o cdigo anterior, recebemos
uma exception.
java.sql.SQLException: No suitable driver
found for jdbc:mysql://localhost/impact
Prof. Fabiano Madeira

A CONEXO EM JAVA

O sistema precisa do driver JDBC para


abrir a conexo.
Precisamos adicionar o driver do MySQL
ao classpath, o arquivo .jar JDBC do
MySQL precisa ser colocado no projeto.

Prof. Fabiano Madeira

FBRICA DE CONEXES

Precisamos ter o controle sobre a


construo dos objetos da nossa classe.
Controlar como abrir uma conexo com
o banco de dados.

Prof. Fabiano Madeira

FBRICA DE CONEXES

public class ConnectionFactory {


public Connection getConnection() {
try {
return DriverManager.getConnection(
"jdbc:mysql://localhost/impacta", "root", "senha");
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
Prof. Fabiano Madeira

FBRICA DE CONEXES

Connection con = new


ConnectionFactory().getConnection();
O mtodo getConnection() uma
fbrica de conexes.
Basta invocar o mtodo e recebemos
uma conexo pronta, no importa de
onde ela veio.
Prof. Fabiano Madeira

FBRICA DE CONEXES

Vamos sempre chamar a classe


de ConnectionFactory e o mtodo de
getConnection.
Dessa forma, podemos mudar a
obteno de conexes, para, usar um
pooling, sem reescreve-las.
Prof. Fabiano Madeira

DESIGN PATTERNS

Uma soluo padro para problemas


conhecidos tem o nome de Design
Pattern (Padro de Projeto).
A ConnectionFactory implementa o
design pattern Factory que prega o
encapsulamento da construo de
objetos complicados.
Prof. Fabiano Madeira

EXERCCIOS: CONNECTIONFACTORY

1. Abra o Eclipse
Vamos criar um projeto no Eclipse chamado aula-jdbc.
V em File -> New -> Project:
Selecione Java Project e clique em Next:
Coloque o nome do projeto como aula-jdbc e clique
em Finish:
Aceite a mudana de perspectiva:

Prof. Fabiano Madeira

EXERCCIOS: CONNECTIONFACTORY

2. Copie o driver do MySQL para o seu projeto.


clique da direita no driver do MySQL mais novo,
escolha Copy;
entre no diretrio workspace, aula-jdbc;
clique da direita e escolha Paste: voc acaba de
colocar o arquivo ".jar" no seu projeto.

Prof. Fabiano Madeira

EXERCCIOS: CONNECTIONFACTORY

3. Vamos criar a classe que fabrica conexes:


Clique em File -> New -> Class.
Crie-a no pacote br.com.impacta.jdbc e nomeie-a
como ConnectionFactory.
Clique em Finish
No cdigo, crie o mtodo getConnection que retorna
uma nova conexo. Quando perguntado, importe as
classes do pacote java.sql (cuidado para no importar
NADA de com.mysql).
Prof. Fabiano Madeira

EXERCCIOS: CONNECTIONFACTORY

public Connection getConnection() {


try {
return DriverManager.getConnection(
"jdbc:mysql://localhost/impacta", "root", "");
} catch (SQLException e) {
throw new RuntimeException(e);
}
}

Prof. Fabiano Madeira

EXERCCIOS: CONNECTIONFACTORY

4. Crie uma classe chamada TestaConexao no


pacote br.com.impacta.jdbc.teste. Todas as
nossas classes de teste devero ficar nesse
pacote.
Crie um mtodo main dentro da classe. Use o atalho
do Eclipse para ajudar.
Dentro do main, fabrique uma conexo usando
a ConnectionFactory que criamos. Vamos apenas
testar a abertura da conexo e depois fech-la com o
mtodo close
Prof. Fabiano Madeira

EXERCCIOS: CONNECTIONFACTORY

Connection connection = new


ConnectionFactory().getConnection();
System.out.println("Conexo aberta!");
connection.close();
Trate os erros com throws. ( Use: Ctrl + 1 e escolha
"add throws declaration").

Prof. Fabiano Madeira

EXERCCIOS: CONNECTIONFACTORY

5. Rode a sua classe TestaConexao pelo Eclipse.


Clique da direita na sua classe TestaConexao
Escolha Run as, Java Application

No funcionou pois esquecemos de colocar o JAR


no classpath! (Build Path no Eclipse)
Selecione o seu driver do MySQL no projeto, clique da
direita e escolha Build Path, Add to Build Path:
Rode novamente sua aplicao TestaConexao agora
que colocamos o driver no classpath.
Prof. Fabiano Madeira

Você também pode gostar