Índice
Java Por ser uma linguagem polivalente, para além das diferentes funcionalidades que podemos alcançar, permite-nos também trabalhar com a persistência de dados, para isso podemos fazer a ligação com os diferentes motores de Bases de dados que existem no mercado.UMA Base de dados Pode ser algo tão simples como um sistema de valores-chave em um arquivo de texto simples, bem como soluções mais complexas e modernas, como as não relacionais, o que torna a capacidade de desenvolver diferentes esquemas de conexão uma característica obrigatória.
JDBC são um conjunto de classes que permitem Java estabelecer conexões com motores de banco de dados, o que nos permite obter os resultados das consultas em um objeto chamado ResultSet.
Uma vez que cada motor é diferente, é provável que o ResultSet que recebemos é particular a ele, por isso não é conveniente para nós estruturarmos nossa aplicação em torno desse objeto.
Para resolver este problema, podemos usar o que é chamado de objeto de acesso, com o qual podemos gerenciar as diferentes formas de nosso ResultSet tornando seu aplicativo dentro de nosso programa mais fácil de implementar e, assim, o desenvolvedor terá menos problemas.
O padrão de design DAOO Objeto de acesso a dados ou DAO É um padrão de design que coleta o que havíamos explicado no ponto anterior, isso nos obriga a criar uma classe de acesso às propriedades de nosso Base de dados. Para fazer este trabalho, devemos fazer todo o trabalho JDBC e o controlador que nos permite conectar com o mecanismo específico que desejamos, além disso, devemos realizar a implementação lógica que explicamos para evitar a dependência de componentes específicos que apenas dificultariam a migração para um mecanismo de banco de dados diferente.
A primeira coisa que precisamos fazer para construir uma conexão JDBC é identificar qual é o motor ao qual queremos fazer a conexão e depois obter as classes necessárias para essa conexão, neste caso vamos fazer uma conexão MySQL, este motor é leve, gratuito e multiplataforma, por isso podemos instalá-lo tanto em Windows, Linux ou Mac.
Conector / J é o conjunto de aulas oferecidas pela equipe de desenvolvimento da MySQL, com eles podemos fazer JDBC trabalhar junto com isso Bases de dados relacional, para incorporá-lo ao nosso projeto devemos seguir os seguintes passos.
1- Devemos baixar o arquivo correspondente à nossa plataforma, também janelas ou para outros do site oficial da MySQL No link a seguir.
PROLONGAR
3- Agora passaremos a testar se tudo funciona bem em nosso computador, para isso faremos um pequeno código onde veremos se conector / J foi carregado com sucesso em nosso sistema, para isso usaremos o seguinte código:
public class ConnectionTest {public static void main (String [] args) {try {Class c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Classe carregada:" + c.getName ()); } catch (ClassNotFoundException ex) {System.err.println (ex); }}}
4- Para executar este exemplo, precisamos incluir a dependência, é recomendado que tenhamos o .jar no mesmo caminho do nosso arquivo TestConexion.java. Com isso coberto, iremos compilar nosso arquivo, abrimos um console e com a instrução Javac e adicionando o .jar ao caminho de classe em tempo de execução com o comando -cp Podemos fazer isso, vamos ver a linha de comando:
javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java
5- Finalmente, para executar nosso arquivo, precisamos apenas executar a seguinte instrução:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection
Se tivermos um resultado como o seguinte em nosso console, podemos começar a trabalhar com operações para Bases de dados:
PROLONGAR
CRIAR TABELA SE NÃO EXISTIR `usuários` (
`id` bigint (20) NOT NULL AUTO_INCREMENT,
`nome` varchar (255) NÃO NULO,
data `date` NOT NULL,
`state` int (11) NOT NULL,
CHAVE PRIMÁRIA (`id`)
) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3;
INSERT INTO `usuários` (` id`, `nome`,` data`, `status`) VALORES
(1, 'Usuário 1', '01/01/2015', 1),
(2, 'Usuário 2', '01/01/2015', 1);
Agora no seguinte código de Java vamos nos concentrar em estabelecer a conexão com o Base de dados, para isso com um tente pegar o bloco Vamos validar se está eficaz e sem erros, então se a conexão foi estabelecida vamos imprimir uma mensagem de sucesso, vejamos:
import java.sql.Connection; import java.sql.DriverManager; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost"; private static final String user = "nosso usuário"; private static final String password = "nossa senha"; public static void main (String [] args) {tente {Connection con = DriverManager.getConnection (caminho, usuário, senha); System.out.println ("Conexão bem-sucedida"); } catch (Exception e) {e.printStackTrace (); }}}
A partir deste código, podemos ver que devemos importar duas bibliotecas do pacote java.sql, um é Conexão que se encarrega de gerir todas as atividades para poder comunicar com a Base de Dados e a outra é Gerenciador de Dispositivos que é responsável por fornecer a maneira como nos comunicaremos com ele. Se tivermos seguido as etapas corretamente, devemos ver a seguinte mensagem ao executar nosso exemplo no console:
PROLONGAR
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class ConnectionTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "nosso usuário"; private static final String password = "nossa senha"; public static void main (String [] args) {tente {Connection con = DriverManager.getConnection (caminho, usuário, senha); Consulta de declaração = con.createStatement (); System.out.println ("Conexão bem-sucedida"); ResultSet result = query.executeQuery ("SELECT * FROM users"); while (result.next ()) {String name = result.getString ("name"); String data = result.getString ("data"); System.out.println ("Nome:" + nome + "Data de registro:" + data); } result.close (); query.close (); con.close (); } catch (Exception e) {e.printStackTrace (); }}}
É importante mencionar que em nosso atributo rota Nós o modificamos e o nome do Base de dados ligar teste onde devemos ter nossa tabela de usuários criada, compilar nosso arquivo e executar, o resultado por console seria como pode ser visto na imagem a seguir:
PROLONGAR
VantagemIsso tem várias vantagens, já dissemos que a primeira é poder usar algo sem repeti-lo, mas também é por segurança, pois nos permite tratar os valores que possivelmente venham da entrada do usuário para evitar um ataque ao nosso Banco de dados, além de também podermos facilitar a legibilidade do nosso programa.
No exemplo a seguir, vamos criar uma consulta com Declaração preparada, para que possa ser usado várias vezes durante o nosso programa. Vamos ver o código resultante:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.PreparedStatement; public class PreparedStatementTest {private static final String path = "jdbc: mysql: // localhost / test"; private static final String user = "nosso usuário"; private static final String password = "nossa senha"; public static void main (String [] args) {tente {Connection con = DriverManager.getConnection (caminho, usuário, senha); Consulta PreparedStatement = con.prepareStatement ("SELECT * FROM usuários Onde id = ?;"); System.out.println ("Conexão bem-sucedida"); query.setInt (1, 1); ResultSet result = query.executeQuery (); while (result.next ()) {String name = result.getString ("name"); String data = result.getString ("data"); System.out.println ("Nome:" + nome + "Data de registro:" + data); } result.close (); query.close (); con.close (); } catch (Exception e) {e.printStackTrace (); }}}
Notamos que usando o método setInt Com o objeto de consulta, podemos passar o parâmetro necessário para a consulta, com isso podemos desvinculá-lo da execução da consulta, ganhando assim portabilidade e facilidade de leitura. Para terminar, compilamos e executamos nosso programa:
PROLONGAR