Java & Bancos de Dados Universidade Salgado de Oliveira Goiânia - ppt carregar
PublicouKamilly Casco Alterado mais de 4 anos atrás
Apresentação em tema: "Java & Bancos de Dados Universidade Salgado de Oliveira Goiânia"— Transcrição da apresentação:
1 Java & Bancos de Dados Universidade Salgado de Oliveira Goiânia
Sistemas de Informação – Ling.Prog.V Prof. Roberto Couto Lima Fonte: Curso Java Prof. Fabricio Leonard Leopoldino (Universo)
2 Tratamento de Exceções (erros)
try catch( ) & finally try { diretiva_normal; //trecho de código monitorado } catch (exception1) { diretiva_de_tratamento_de erro1; catch (exception2) { diretiva_de_tratamento_de erro2;
3 Tratamento de Exceções (erros)
01 public class exemploTryCatch { public static void main (String args[]) { 03 int j = 10; 04	try { 05 while (j > Integer.parseInt(args[0])) { System.out.println(""+j); j--; 08 } } catch (ArrayIndexOutOfBoundsException e) { 11 System.out.println("Não foi fornecido um argumento."); } 13 catch (java.lang.NumberFormatException e) { 14 System.out.println("Não foi fornecido um inteiro válido."); } } 17 }
4 Tratamento de Exceções (erros)
try { diretiva_normal; //trecho de código monitorado } catch (exception1) { diretiva_de_tratamento_de erro1; finally { diretiva_independente_de_erro;
5 Acesso a banco de dados Estrutura típica para que uma aplicação Java tenha acesso a um banco de dados relacional: SQL Gerenciador Driver Conexão Definição Classes Instruções SQL Processar Resultados Inteface BD Driver.jar
6 Acesso ao banco de dados
Para que uma aplicação Java tenha acesso a um banco de dados relacional os seguintes passos devem ser atendidos: Habilitar o driver JDBC a partir da aplicação cliente; Estabelecer uma conexão entre a aplicação cliente e servidor do banco de dados; Montar e executar a instrução SQL desejada; e Processar no cliente o resultado da consulta.
7 Acesso ao banco de dados
Principais Falhas: - Banco de Dados não iniciado; - Driver não Encontrado - Driver incompatível; - URL – Configurada de forma incorreta (nome banco, usuário, senha, servidor) - Classe de conexão (inexistente, não instanciada, com erros) - Usuário sem direito de acesso - Falta de tratamento de Exceções try catch - Classe java.sql não instanciada
8 Arquitetura da JDBC As principais classes e interfaces do pacote java.sql são: DriverManager - gerencia o driver e cria uma conexão com o banco. Connection - é a classe que representa a conexão com o bando de dados.
9 Arquitetura da JDBC As principais classes e interfaces do pacote java.sql são: Statement - controla e executa uma instrução SQL . PreparedStatement - controla e executa uma instrução SQL preparada. ResultSet - contém o conjunto de dados retornado por uma consulta SQL. ResultsetMetaData - é a classe que trata dos metadados do banco.
11 Carregando o driver JDBC
Carregamento do driver JDBC específico: Class.forName( "StringNomeDriveJDBC"); A String (StringNomeDriveJDBC) passada ao método forName() é o nome completo qualificado da classe que implementa o Driver JDBC de cada banco de dados. Lembrando que cada driver possui um nome diferente, consulte a documentação do fabricante.
12 Utilizando a JDBC
13 Exemplo de drivers e conexões
JDBC:ODBC: sun.jdbc.odbc.JdbcOdbcDriver jdbc:odbc:<alias> Microsoft MSSQL Server JDBC Driver: com.microsoft.jdbc.sqlserver.SQLServerDriver jdbc:microsoft:sqlserver://<server_name>:<1433> Firebird: org.firebirdsql.jdbc.FBDriver jdbc:firebirdsql:[//host[:port]/]<database>
14 Utilizando a JDBC Oracle: Postgresql: MySql:
oracle.jdbc.driver.OracleDriver Postgresql: org.postgresql.Driver jdbc:postgresql:[<//host>[:<5432>/]]<database> MySql: org.gjt.mm.mysql.Driver jdbc:mysql://<hostname>[<:3306>]/<dbname>
15 Carregando o driver do MySQL
16 Carregando o driver do Oracle
17 Carregando o driver do PostgreSQL
18 Carregando o driver da JDBC:ODBC
19 Conectando ao Banco de Dados
Criação da conexão com o BD: Connection conn = DriverManager.getConnection( "url","usuario","senha"); Após o carregamento do driver, a classe DriverManager é a responsável por se conectar ao banco de dados e devolver um objeto Connection, que representa a conexão com o BD.
20 Exemplo de conexão ao banco de dados MySQL
22 Utilizando a JDBC Com a conexão estabelecida já é possível interagir com o BD de várias formas: Criar tabelas e outros elementos Inserir, Alterar e Remover registros Buscar registros Buscar as meta informações do banco
23 Criando tabelas Uma nova tabela pode ser criada especificando o seu nome juntamente com os nomes das colunas e seus tipos de dado: Exemplo do comando SQL CREATE TABLE aluno ( matricula int, nome varchar(80), varchar(80), idade int );
24 Exemplo de criação de tabela com a JDBC
26 Explicação Através do método createStatement() de Connection é retornado um objeto Statement, que é usado para executar um comando SQL no BD. O método executeUpdate() de Statement recebe o SQL que será executado. Este método deve ser usado para DDLs e DML Depois os métodos close() de Statement e Connection são invocados para liberar os recursos.
27 Inserindo dados O comando INSERT é utilizado para incluir linhas em uma tabelada tabela: Exemplo do comando SQL INSERT INTO aluno (matricula, nome, , idade) VALUES (1, 'Fabricio', 29);
28 Exemplo de inserção de dados com JDBC
30 Instrução Preparada public boolean incluir(Object o) {
String sInstrucaoSQL; sMensagemErro = ""; Cliente cliente = (Cliente) o; try { objConexaoBD.conecta(); sInstrucaoSQL = "insert into " + NOME_TABELA + campo+ "values( ?,?,?,?,?,?,?,?,?,?,?,?)"; PreparedStatement stmt = objConexaoBD.con.prepareStatement(sInstrucaoSQL); stmt.setInt(1, cliente.getCodCliente()); stmt.setString(2, cliente.getNome()); stmt.setString(3, cliente.getEndereco()); stmt.setString(4, cliente.getFone()); stmt.setInt(5, cliente.getIdade()); stmt.setString(6, cliente.getSexo()); stmt.setFloat(7, (float) cliente.getRendaMensal()); stmt.execute(); stmt.close(); objConexaoBD.desconecta(); } catch(SQLException ex) { sMensagemErro = "SQLException: " + ex.getMessage(); if (sMensagemErro.equals("")) return true; else return false;
31 Apoio da Ferramenta Case
Criar uma tabela com a seguinte estrutura Tabela Instrução SQL
32 Exemplo Dados
33 Recuperando dados do BD
A recuperação de dados do BD é trivial e é feita através da execução de uma query SQL (consulta sql), e os dados podem ser recuperados através da interface ResultSet, retornada na execução da query.
34 Explicação O método executeQuery() de Statment executa uma consulta (query) SQL e retorna um objeto ResultSet, que contém os dados recuperados. Através do método next() de ResultSet, o cursor interno é movido para o próximo registro. O método retorna false caso não existam mais registros ou true caso contrário. Os valores dos registros podem ser recuperados como o método getString(), que recebe o nome do campo ou seu alias.
35 Consultando dados Para ver os dados de uma tabela, a tabela deve ser consultada. O comando SELECT do SQL é utilizado para esta função. O comando é dividido em lista de seleção (a parte que especifica as colunas a ser retornadas), lista de tabelas (a parte que especifica as tabelas de onde os dados vão ser extraídos), e uma qualificação opcional (a parte onde são especificadas as restrições).
36 Consultando dados Exemplo do comando SQL Select * from alunos
37 Exemplo de consulta de dados com JDBC
39 UPDATE alunos SET alunoidade = 30;
Alterando dados As linhas existentes podem ser atualizadas utilizando o comando UPDATE. Exemplo do comando SQL UPDATE alunos SET alunoidade = 30;
40 Exemplo de alteração de dados com JDBC
42 Excluindo dados As exclusões são realizadas utilizando o comando DELETE. Exemplo do comando SQL DELETE FROM alunos