Ir para o conteúdo PET Sistemas de Informação Ir para o menu PET Sistemas de Informação Ir para a busca no site PET Sistemas de Informação Ir para o rodapé PET Sistemas de Informação
  • International
  • Acessibilidade
  • Sítios da UFSM
  • Área restrita

Aviso de Conectividade Saber Mais

Início do conteúdo

Conexão MySQL / JAVA



Nesta edição iremos aprender a estabelecer uma conexão MYSQL com JAVA e quatro operações básicas: criação (CREATE), consulta (READ), atualização (UPDATE) e destruição (DELETE) para trabalhar com os dados do Banco de Dados, caracterizando o acrônimo CRUD. Acesse o link do GitHub para acesso ao código e melhor acompanhamento da redação.

Para começar, deve ser feito o download e a instalação do MySQL Server bem como a da IDE que se deseja utilizar (NetBeans, Intelij IDEA, Eclipse, etc.). Em seguida, precisamos do driver de conexão entre o Java e o MySQL, o mysqlconnector. Drivers retornam dados consultados em um formato relacional e fornecem conectividade entre banco de dados por meio das interfaces de programa aplicativo (APIs) JDBC disponíveis na plataforma Java. O JDBC (Java Database Connectivity) descreve uma lista de métodos SQL que um programador Java pode usar para acessar um banco de dados relacional. Neste tutorial, estamos utilizando a versão “mysql-connector-java-8.0.17.jar“, bem como o Netbeans IDE 8.2.

Após as instalações, poderemos iniciar nosso projeto. No NetBeans, insira o conector na pasta “Bibliotecas” do seu projeto, como nas figuras a seguir:

 
 
 

Em seguida, crie um pacote em “Pacotes de Códigos-fonte” para onde será colocada a classe da conexão com o banco. Nesse pacote, crie uma nova Classe Java para a sua classe de conexão.

 
 

Para ser feita uma conexão com o banco de dados, utilizamos um driver. Assim sendo, utilizamos a classe DriverManager para a comunicação com esses drivers. Com o método getConnection, por sua vez, podemos informar com qual o banco devemos realizar a nossa conexão, o usuário e a senha. O primeiro parâmetro passado por esse método é a URL, uma String, que varia de acordo com o conector que se está utilizando. Neste exemplo, estamos usando o “mysql-connector-java-8.0.17.jar”, logo, essa String possui a seguinte formatação:

URL = jdbc:mysql:// localhost:port/nome_do_banco?useTimezone=true&serverTimezone=UTC

Os próximos parâmetros são o usuário e a senha de acesso ao banco de dados, respectivamente:

DriverManager.getConnection(URL, USER, PASS);

Classe de conexão:

package DatabaseConnection;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

public class Conexao{

// Informamos qual o Driver que está sendo utilizado

private static final String DRIVER = "com.mysql.cj.jdbc.Driver";

private static final String URL = "jdbc:mysql://localhost:3306/pet?useTimezone=true&serverTimezone=UTC";

private static final String USER = "root";

private static final String PASSWORD = "senha";

public static Connection getConnection() throws SQLException, ClassNotFoundException {

try{

 // O método forName carrega e inicia o driver passado por parâmetro

Class.forName(DRIVER);

 // Estabelecendo a conexão

return DriverManager.getConnection(URL, USER, PASSWORD);

}catch(ClassNotFoundException | SQLException ex){ // Tratamento de Exceções

System.out.println(ex);

return null;

}

}

}

Agora, com a conexão estabelecida, podemos gerar as classes que irão se relacionar com o banco de dados, buscando, alterando, inserindo e excluindo dados. Assim sendo, precisamos criar mais dois pacotes, um para as classes DAO e um para as classes bean.  As classes DAO – Data Access Object – são as classes que fazem o intermédio com o banco de dados, fazendo conexões e transações com o mesmo. Já as classes bean, elas possuem todos os atributos privados (as colunas das tabelas do banco de dados) bem como os métodos getters e setters destes. Exemplo de classe bean:

 
Pacotes já criados
 
Exemplo de classe Bean
 
 
 
Dica: para gerar os getter e setters automaticamente no NetBeans: pressione Alt+Insert e selecione getter e setters e, a seguir, será aberta uma janela em que poderão ser selecionados os atributos sobre os quais se deseja que sejam gerados esses métodos.
 
 
 
 
 
 
 
 

 

 

 

 

 

 

 

 

 

 

Criadas as classes bean, podemos nos dirigir à criação das classes DAO. Para a construção dessas classes, é necessário ter um conhecimento prévio na linguagem SQL, uma vez que é através dela que a comunicação é feita com o banco de dados. Primeiramente, precisamos buscar uma conexão com o banco de dados. Isso é feito por meio do método getConnection(). A seguir, utilizamos o PreparedStatement, que é usado para consultas parametrizadas, formatando os valores – inserindo dados de forma mais segura.

Exemplo de um método para inserção de dados no banco de dados:

// O retorno é vazio, e recebe um objeto do tipo Membros

public void Insert(Membros m) throws SQLException, ClassNotFoundException{

Connection con = Conexao.getConnection(); // Busca uma conexão com o banco de dados

PreparedStatement stmt = null;

try{

 // Inserindo o comando SQL a ser usado

stmt = con.prepareStatement("INSERT INTO membros VALUES (DEFAULT, ?)");

 // O método setString, define que o valor passado será do tipo inteiro

 stmt.setString(1, m.getNome());

 // Método responsável por fazer a alteração no banco de dados

stmt.executeUpdate(); 

}catch(SQLException ex){  // Tratamento das exceções

System.out.println(ex);

} finally{ // Encerramento da conexão

Conexao.closeConnection(con, stmt);

}

}

Note que, os valores que são auto-incrementáveis, não são passados através do método get, como é o caso do ID no exemplo.

O método para alteração, bem como para remoção de dados é semelhante ao da inserção, diferindo apenas no comando SQL utilizado.

Agora, desenvolveremos um exemplo de busca de dados no banco de dados. Tendo em vista que, ao ser realizada uma busca (SELECT) em um banco de dados, recebemos como retorno vários itens/linhas. Assim, trataremos esses dados como uma lista de informações, ou seja, o retorno desse método deve ser uma lista.

Exemplo de um método para busca de dados:

// O retorno é uma lista

public List<Membros> Select () throws SQLException, ClassNotFoundException{

Connection con = Conexao.getConnection(); // Busca uma conexão com o banco de dados

PreparedStatement stmt = null;

ResultSet rs = null; // Objeto que armazena o resultado de uma busca em uma estrutura de dados que pode ser percorrida

// Instanciando uma nova lista para receber os valores do banco

List<Membros>membros = new ArrayList<>();

try{

 // Inserindo o comando SQL a ser usado

stmt = con.prepareStatement("SELECT * FROM membros");

rs = stmt.executeQuery(); // Executa o comando SQL

 /* Loop responsável pela busca dos dados no banco que o repetirá até que não

 haja valores */

while(rs.next()){

Membros mem = new Membros();

mem.setId(rs.getInt("id"));

mem.setNome(rs.getString("nome"));

membros.add(mem); // Adiciona o objeto na lista

}

}catch(SQLException ex){ // Tratamento das exceções

Logger.getLogger(MembrosDAO.class.getName()).log(Level.SEVERE, null, ex);

}

return membros;   // Retorna a lista

}

Tendo as classes DAO e bean, resta apenas o desenvolvimento de uma interface com o usuário. Dessa forma, pode-se testar a conexão e suas interações com o banco de dados. Esse é um ponto de partida para as aplicações que precisem usar bancos de dados e é extremamente importante sabermos lidar com essa interação e, embora possa parecer complexo, uma vez que se entenda o funcionamento dos métodos necessários, vemos que não é tão complicado assim.

 
Referências:

http://www.codeacademy.com/articles/what-is-crud

http://www.linhadecodigo.com.br/artigo/832/overview-de-javabeans.aspx

https://pt.stackoverflow.com/questions/113840/como-funciona-o-padr%C3%A3o-dao

https://www.guj.com.br/t/classe-dao/71523/3

https://www.guj.com.br/t/class-forname/96650/3

https://www.devmedia.com.br/classe-de-conexao-em-java-no-netbeans-driver-mysql/18804

https://www.guj.com.br/t/re-resultset-pra-q-isso-serve/31507

https://www.guj.com.br/t/o-que-e-preparedstatement-e-para-que-serve/86774/2

https://www.javatpoint.com/PreparedStatement-interface

https://www.devmedia.com.br/jdbc-tutorial/6638

https://docs.microsoft.com/pt-br/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15

https://www.mindprod.com/jgloss/jdbc.html

Divulgue este conteúdo:
https://ufsm.br/r-791-2684

Publicações Relacionadas

Publicações Recentes