Orientação a Objetos Conexão: Banco de Dado MySQL JDBC / DriverManager / ResultSet Gil Eduardo de Andrade Conexão: Banco de Dados MySQL O pacote “MySQL-Connector” • Quando utilizamos o Banco de Dados MySQL, integrado a linguagem Java, necessitamos do pacote MySQL-Connector; • Esse pacote deve ser adicionado ao projeto em desenvolvimento, pois possui os drivers e implementações necessários para efetuar a comunicação entre o Java e o MySQL; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL O pacote “MySQL-Connector” • O pacote MySQL-Connector é mantido e distribuído livremente, pode ser obtido em: http://dev.mysql.com/downloads/connector/j/ • O próximo slide apresenta os passos necessários para adicionar o MySQLConnector ao projeto, considerando que o mesmo já tenha sido baixado; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Adicionando o pacote MySQL ao projeto (considerando a IDE Netbeans) Botão direito do mouse sobre o projeto / Propriedades Bibliotecas / Adicionar JAR Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Implementando uma classe de Conexão (Conexao.java) • A conexão e execução de query no banco são rotinas (trechos de código) comuns as mais variadas aplicações; • Sendo assim, uma classe de conexão, bem como métodos que permitem executar uma query será apresentada a seguir; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Parâmetros para uma conexão • Qualquer que seja a conexão a ser efetuada com o banco de dados, ela necessitará dos seguintes parâmetros: – – – – Path/Caminho: endereço de rede onde encontra-se o BD; Nome do Banco: nome da base de dados a ser conectada; Usuário: nome do usuário, no banco, que fará a conexão; Senha: senha do usuário, no banco, que fará a conexão; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Construtor da Classe (java.sql.Connection / java.sql.Statement) • O construtor da classe irá receber como parâmetro os dados para conexão; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Método Conectar() • O método “Conectar()” permite criar uma conexão com o banco, que é armazenada pelo objeto da classe Connection – estado da conexão; • Também na conexão é criado um objeto da classe Statement, que permite executar as transações (query) com o banco; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Método Conectar() (java.sql.DriverConnection) 1) O método getConnection() recebe como parâmetros: uma string contendo o caminho de rede do banco de dados + o nome da base para conexão; uma string contendo o nome do usuário para conexão; uma string contendo a senha do usuário para conexão; e retorna: um objeto da classe Connection, que permite abrir e fechar uma conexão; 2) O método createStatement() da classe Connection retorna um objeto do tipo Statement que permite executar queries do tipo: SELECT, INSERT, UPDATE, DELETE, etc. Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Método Desconectar() 1) Os métodos close() permitem: fechar uma conexão anteriormente aberta com o banco de dados “this.con.close()”; e finalizar um canal de comunicação anteriormente aberto para execução de transações com o banco de dados “this.execute.close()”; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Método executeQuery() 1) O método executeUpdate(query) permite: executar uma determinada query no banco de dados. Recebe como parâmetro a string que representa a query a ser executada. Utilizado para execução de queries do tipo INSERT, UPDATE e DELETE. Retorna um valor inteiro indicando se a execução foi bem sucedida ou não; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Método Select() (java.sql.ResultSet 1) O método executeQuery(query) permite: executar uma query do tipo SELECT no banco de dados. Recebe como parâmetro a string que representa a query a ser executada. Retorna um objeto do tipo ResultSet que contém o conjunto dos resultados obtidos pela execução; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL A Classe ResultSet • A classe ResultSet permite armazenar os dados obtidos do banco de dados através da execução de uma query do tipo SELECT; • A ResultSet possui diversos métodos que permitem ao usuário acessar as informações nela armazenadas; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Métodos da classe ResultSet • void next(): permite navegar para próxima linha de resultados (próxima linha da tabela); • int getInt(String c): permite obter o valor do campo “c” do conjunto de resultados de um SELECT, convertendo-o para inteiro; • String getString(String c): permite obter o valor do campo “c” do conjunto de resultados de um SELECT, convertendo-o para string; Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Exemplo : Utilização de um ResultSet • Considere a tabela “tb_alunos”: Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Exemplo : Utilização de um ResultSet • Considere o trecho de código: Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade Conexão: Banco de Dados MySQL Exemplo : Utilização de um ResultSet • Resultado da execução do código: Aula 16: Conexão: Banco de Dados MySQL – Gil Eduardo de Andrade