Aula01-banco de dados e JDBC.pdf
Transcript of Aula01-banco de dados e JDBC.pdf
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
1/22
Bancos de dados e JDBC
Esta aula tem como objetivo
apresentar:
Plano de ensino
Banco de dados com JDBC
Estratgia de trabalho: aula
expositiva dialogada e exerccios.
Prof. Fabiano Madeira
Aula 01
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
2/22
Bancos de dados e JDBC
Ao trmino dessa aula voc ser capazde:
conectar-se a um banco de dadosqualquer atravs da API JDBC;
criar uma fbrica de conexes usando odesign pattern Factory;
pesquisar dados atravs de queries;Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
3/22
POR QUE USAR UM BANCO DE DADOS?
Sistemas usam bancos de dados parapermitir consultas futuras, gerao de
relatrios e alteraes nas informaes. Informaes devem ser mantidas
organizadas e prontas para consultas.
A maioria dos bancos de dados sochamados relacionais.
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
4/22
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 JDBCProf. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
5/22
A CONEXO EMJAVA
Temos um conjunto de interfacesdentro do pacote java.sql.
a interface Connection define mtodospara executar queries, comitar atransao e fechar a conexo.
As classes concretas so chamadas dedriver.
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
6/22
A CONEXO EMJAVA
Todos os principais bancos de dadospossuem drivers JDBC para utilizarmos
com Java.
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
7/22
A CONEXO EMJAVA
A classe DriverManager a responsvelpor se comunicar com todos os drivers.
Usamos o mtodo getConnection comuma String que indica a qual banco nosconectar.
jdbc:mysql://ip/nome_do_banco
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
8/22
A CONEXO EMJAVA
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
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
9/22
A CONEXO EMJAVA
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 driverfound for jdbc:mysql://localhost/impact
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
10/22
A CONEXO EMJAVA
O sistema precisa do driver JDBC paraabrir a conexo.
Precisamos adicionar o driver do MySQLaoclasspath, o arquivo .jar JDBC doMySQL precisa ser colocado no projeto.
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
11/22
FBRICA DECONEXES
Precisamos ter o controle sobre aconstruo dos objetos da nossa classe.
Controlar como abrir uma conexo como banco de dados.
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
12/22
FBRICA DECONEXES
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
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
13/22
FBRICA DECONEXES
Connection con = newConnectionFactory().getConnection();
O mtodo getConnection() umafbrica de conexes.
Basta invocar o mtodo e recebemosuma conexo pronta, no importa deonde ela veio.
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
14/22
FBRICA DECONEXES
Vamos sempre chamar a classede ConnectionFactory e o mtodo de
getConnection. Dessa forma, podemos mudar a
obteno de conexes, para, usar um
pooling, sem reescreve-las.
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
15/22
DESIGNPATTERNS
Uma soluo padro para problemasconhecidos tem o nome de Design
Pattern (Padro de Projeto). A ConnectionFactory implementa o
design pattern Factory que prega o
encapsulamento da construo deobjetos complicados.
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
16/22
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
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
17/22
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
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
18/22
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 retornauma nova conexo. Quando perguntado, importe asclasses do pacote java.sql (cuidado para no importarNADA de com.mysql).
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
19/22
EXERCCIOS: CONNECTIONFACTORY
public Connection getConnection() {try {
return DriverManager.getConnection(
"jdbc:mysql://localhost/impacta", "root", "");} catch (SQLException e) {
throw new RuntimeException(e);
}}
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
20/22
EXERCCIOS: CONNECTIONFACTORY
4. Crie uma classe chamada TestaConexao nopacote br.com.impacta.jdbc.teste. Todas asnossas 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 usandoa ConnectionFactory que criamos. Vamos apenastestar a abertura da conexo e depois fech-la com omtodo close
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
21/22
EXERCCIOS: CONNECTIONFACTORY
Connection connection = newConnectionFactory().getConnection();System.out.println("Conexo aberta!");connection.close();
Trate os erros com throws. ( Use: Ctrl + 1 e escolha"add throws declaration").
Prof. Fabiano Madeira
-
7/26/2019 Aula01-banco de dados e JDBC.pdf
22/22
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 JARno 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