Programação, diversão e arte. Por Ricardo Giaviti
Como conectar o Java ao MySQL usando o NetBeans
Pessoal, resolvi fazer esse artigo ensinando como se conectar a uma base de dados MySQL usando o Java porque vi que é uma dificuldade muito comum entre as pessoas que estão iniciando em programação. Espero que esse artigo ajude a todos que estão com essa dificuldade a sanarem suas dúvidas,
Esse artigo parte do pressuposto de que quem for seguir esse tutorial tenha o JDK (Java Development Kit) instalado assim como o MySQL e o NetBeans. Caso você não tenha nenhum deles, você pode baixar e instalar a partir dos sites oficiais. Abaixo segue os sites de cada um deles:
Para esse tutorial eu estou usando o JDK6, MySQL 5.0 e o NetBeans 6.5 rodando tudo em cima do Ubuntu 8.10 Intrepid Ibex.
O NetBeans possui algumas “facilidades” de conexão a banco de dados bem ao estilo “Next > Next > Ok”. Porém o tutorial foi feito na maneira tradicional.
Após tudo instalado hora de começar a colocar a mão na massa. O Java para se conectar a qualquer banco de dados precisa de um driver de conexão, esse driver é chamado de JDBC (Java Database Connectivity). Sem um JDBC não é possível fazer uma conexão a um banco de dados. Cada banco de dados possui seu próprio JDBC. Por exemplo a Oracle fornece um JDBC para ser usado em bancos Oracle, o PostGRESQL também fornece um JDBC para ser usado com o PostGRESQL e assim vai. Não é diferente com o MySQL. O pessoal do MySQL também disponibilizou um JDBC para ser usado em conexão Java – MySQL.
Um pouquinho mais de informação sobre os drivers JDBC pode ser encontrado aqui na Wikipedia.
Como o MySQL também nos fornece um JDBC, vamos baixa-lo do site oficial do MySQL. Endereço do JDBC é: http://dev.mysql.com/downloads/. No menu, clique em Connectors e depois em Connector/J. Agora é só fazer o download do JDBC. Feito o download descompacte o arquivo.
Vai ser descompactado vários arquivos como instruções e documentações mas o arquivo que nos interessa é um que termina com extensão .JAR. Até a finalização desse artigo o nome do JDBC do MySQL é mysql-connector-java-5.1.7-bin.jar
Esse é o JDBC que irá nos conectar a uma base MySQL. Guarde a localização desse arquivo. Agora vamos criar um banco de exemplo com alguns dados.
Se conecte ao MySQL com sua ferramenta favorita ou pelo console mesmo. Para esse artigo eu criei um banco com uma tabela e três colunas. Tudo bem simples. Se quiser seguir esse exemplo abaixo vai os script SQL para a criação. Basta rodar no banco. Fique a vontade para fazer o esquema de banco a sua maneira, só lembre de mais para frente no artigo adaptar o seu esquema de banco ao código.
Script SQL:
CREATE TABLE IF NOT EXISTS 'usuarios' ( 'nome' varchar(50) NOT NULL, 'email' varchar(50) NOT NULL, 'idade' int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO usuarios (nome, email, idade) VALUES ('Ricardo', 'ricardo@meuemail.com', 23), ('José', 'jose@seuemail.com', 29);
Beleza! Banco criado e alguns dados inseridos. Vamos para o NetBeans!
Abra a NetBeans e teremos uma tela inicial parecida com essa:
Vamos criar nosso projeto. Para isso faça:
- Arquivo > Novo Projeto;
- Escolha categoria: Java. Projeto: Aplicativo Java;
- Clique em Próximo;
- Coloque um nome para o projeto e clique em finalizar;
Próxima tela após clicar no botão Próximo. Aqui é onde definiremos o nome para o projeto e mais algumas configurações.
Nosso projeto foi criado.
Agora vamos adicionar o driver JDBC para que nossa aplicação consiga se conectar ao Banco de Dados. Para isso:
- Clique com o botão direito em cima do Projeto > Propriedades.
- Selecione a opção Bibliotecas e clique no botão Adicionar JARs/pasta.
- Vá até o JDBC que baixamos do site do MySQL selecione o arquivo .jar
- Clique em OK > OK
Pronto. O JDBC já foi adicionado a nossa aplicação. Agora vamos fazer um pouco de código
Nós iremos fazer toda a conexão com banco de dados direto da classe principal que o NetBeans nos forneceu. Logicamente essa metodologia não segue as melhores práticas da programação e todo o resto, mas serve para você ter uma idéia de pelo menos como conectar sua aplicação a uma base MySQL.
O código gerado pelo NetBeans está assim:
package mysqlconnection; public class Main { public static void main(String[] args) { //Nosso código vai aqui } }
Vamos criar a conexão e vamos fazer um select básico no banco. Abaixo segue o código com a conexão, com o envio do select e o tratamento de exceção. O código está comentado com o que cada linha está fazendo:
package mysqlconnection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Main { public static void main(String[] args) { String driver = "com.mysql.jdbc.Driver"; //Classe do driver JDBC String banco = "MeuBD"; //Nome do Banco criado String host = "localhost"; //Maquina onde está o banco String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão String usuario = "root"; //Usuário do banco String senha = ""; //Senha de conexão try { Class.forName(driver); //Carrega o driver //Obtém a conexão com o banco Connection conn = DriverManager.getConnection(str_conn, usuario, senha); //Cria um statement para podermos mandar um SQL para o banco Statement stmt = conn.createStatement(); //Mandamos o SQL para o banco e obtemos um ResultSet String sql = "SELECT * FROM usuarios"; ResultSet rs = stmt.executeQuery(sql); //Percorrendo o ResultSet e obtendo os valores do banco while (rs.next()) { System.out.println(rs.getString("nome")); System.out.println(rs.getString("email")); System.out.println(rs.getInt("idade")); System.out.println("===================================="); } } catch (ClassNotFoundException ex) { System.out.println("Não foi possível carregar o driver."); ex.printStackTrace(); } catch (SQLException ex) { System.out.println("Problema com o SQL"); ex.printStackTrace(); } } }
Repare que na obtenção dos objetos a partir do ResultSet nós usamos como chave o nome da coluna no banco de dados.
Se estiver tudo certo, já podemos executar nosso código. Para isso faça aperta F6 ou clique no “Play”. Se tudo deu certo e se você utilizou o esquema de banco fornecido nesse post, a saída para console será assim:
run: Ricardo ricardo@meuemail.com 23 ==================================== José jose@seuemail.com 29 ==================================== CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
Bacana hein?!
É isso pessoal, fizemos uma conexão bem simples a uma base de dados MySQL usando Java e JDBC. Espero que tenham gostado do artigo e até a próxima!
| Print article | This entry was posted by RicardoSEP on 25/11/2008 at 7:40 pm, and is filed under Java. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |













about 1 year ago
Obrigada
about 1 year ago
about 1 year ago
about 1 year ago
Basta substiuit o “localhost” dessa linha:
String host = “localhost”; //Maquina onde está o banco
Pelo IP da máquina onde está o banco.
about 1 year ago
about 1 year ago
ublic static Connection getConnection() throws Exception{
try{
Class.forName(“com.mysql.jdbc.Driver”);
return DriverManager.getConnection(“jdbc:mysql://localhost/usuarios”, “neto”, “integrator”);
}
recebir essa mensagem:
javax.servlet.ServletException: java.lang.Exception: erro:com.mysql.jdbc.Driver
root cause
java.lang.Exception: erro:com.mysql.jdbc.Driver
about 1 year ago
Olha voce pode encontrar no site do MySql, la voce podera encontrar exemplos (em Inglês) de como usar! Eu baixei nesse link http://dev.mysql.com/downloads/connector/j/3.1.html que é do site, apos baixar extraia ele (esta em ZIP) e use apenas o driver mysql-connector-java-5.0.8-bin que esta no mesmo pacote, entao coloque ele na sua LIB e crie sua conexao, como acima…
Para mim esta funcionando legal..
Ate mais
Miguel
about 1 year ago
about 1 year ago
about 1 year ago
about 1 year ago
abraco
about 1 year ago
Também me ajudou muito durante realização de trabalho para faculdade (Disciplina: Sistemas Inteligentes)
about 1 year ago
-> public static void main(String[] args) {
me apresentou um erro que nao poderia ser static
tirei e funcionou blz…
muito boom valeu
about 1 year ago
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mysqlconnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* @author root
*/
public class Main
{
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
String driver = “com.mysql.jdbc.Driver”; //Classe do driver JDBC
String banco = “biblioteca”;//Nome do Banco de Dados
String host = “localhost”;//Máquina hospedeira do Banco de Dados
String str_conn = “jdbc:mysql://” + host + “:3306/” + banco;//URL de conexão
String usuario = “root”; //Usuário do Banco
String senha = “123″;//Senha de conexão
try
{
Class.forName(driver); //Carrega o driver
//Obtém a conexão com o banco
Connection conn = DriverManager.getConnection(str_conn, usuario, senha);
//Cria um statement para podermos mandar um SQL para o banco
Statement stmt = conn.createStatement();
//Mandamos o SQL para o banco e obtemos um ResultSet
String sql = “SELECT * FROM usuarios”;
ResultSet rs = stmt.executeQuery(sql);
//Percorrendo o ResultSet e obtendo os valores do banco
while (rs.next())
{
System.out.println(rs.getString(“nome”));
System.out.println(rs.getString(“email”));
System.out.println(rs.getInt(“idade”));
System.out.println(“====================================”);
}
}
catch (ClassNotFoundException ex)
{
System.out.println(“Não foi possível carregar o driver.”);
ex.printStackTrace();
}
catch (SQLException ex)
{
System.out.println(“Problema com o SQL”);
ex.printStackTrace();
}
}
}
A SAÍDA DEPOIS DA EXECUÇÃO:
run:
Não foi possível carregar o driver.
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at mysqlconnection.Main.main(Main.java:35)
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
about 1 year ago
O driver não está carregando. Você deve configurar o classpath inserindo o local do driver do MySQL para que funcione corretamente.
about 11 months ago
abx
about 11 months ago
Problema com o SQL
java.sql.SQLException: Access denied for user ‘root’@'localhost’ (using password: NO)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3536)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3468)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:917)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3974)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1282)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2142)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:773)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at mysqlconnection.Main.main(Main.java:28)
BUILD SUCCESSFUL (total time: 0 seconds)
about 11 months ago
about 10 months ago
about 10 months ago
valeu mesmo
brigadu
about 9 months ago
Encontrei muitos tutoriais na web, mas este é o mais objetivo e claro.
about 7 months ago
Muito bom mesmo!
about 7 months ago
about 7 months ago
about 6 months ago
e voltando por Delphi
Eka
System.out.println(“Valeu Cara!!!!”);
about 6 months ago
about 6 months ago
about 4 months ago
Sucesso e brigadão aew. Descobri que me faltava adicionar o .jar (o estranho é que quando eu olhava na aba “Serviços” tinha um jar lá entao pensava…o netbeans já tem esse jar e ele deve estar colocando no meu projeto, mas, ao que parece, você precisa fazer isso manualmente^^). Vlwz.
about 3 months ago
me ajudou muito!!! salvou meu trabalho da facu!!!
abraços e sucesso!!!
about 2 months ago
Abraços!!!
about 2 months ago
Abraços…
about 1 month ago
about 1 month ago
Se for isso, eu até poderei ajudar, mas não agora. Posso escrever um artigo sobre esse construtor, que é o melhor para java até então, porém não irá ser agora. Pelo seu comentário, isso é para um trabalho, então não daria tempo.
Obrigado pelo comentário
about 1 month ago
msmo sendo um arkivo de 2008, me ajudou muito…
Vlwsss
about 1 month ago
Como eu posso criar um JFrame para manipular esse banco.
Exemplo: Inserir, editar, excluir e localizar os dados no JFrame?
about 1 month ago
Você precisa estudar bastante a API do Swing. Não importa se é interface web, desktop, webservice…
Sabendo como funciona, você cria rapidinho. Tentarei fazer um artigo de desenvolvimento usando Java e Swing. Mas isso bem para frente. Fique ligado no blog.
Obrigado pelo comentário.