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!








há 1 ano atrás
Ola, estou prescisando saber se onde encontro o drive MySql para Java usando a ferramenta netbeans.
Obrigada
há 11 meses atrás
Muito bom seu post… me ajudou um bocado… Abraço !
há 11 meses atrás
Valeu, muito bom. E para acessar o bd pela rede??? O que muda no codigo??
há 11 meses atrás
Osvaldo,
Basta substiuit o “localhost” dessa linha:
String host = “localhost”; //Maquina onde está o banco
Pelo IP da máquina onde está o banco.
há 11 meses atrás
Valeu Cara..Ajudou mt!!
há 11 meses atrás
opa! Parabens bom post, mas eu nao conseguir obter a conexao veja:
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
há 11 meses atrás
@gisiele
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
há 11 meses atrás
Muito bom mesmo, uma maneira fácil de demonstrar algo básico.
há 11 meses atrás
opa! muito bom, o meu problema era so adicionar o drive de conexão ao projeto, ai ficou 100%!!!
há 10 meses atrás
Ótimo artigo, o unico que me ajudou a fazer o mysql-connector funcionar, parabéns e continue escrevendo artigos assim.
há 10 meses atrás
Parabens, realmente muito bom e simples, funciono de cara.
abraco
há 9 meses atrás
Muito obrigado pela orientação !
Também me ajudou muito durante realização de trabalho para faculdade (Disciplina: Sistemas Inteligentes)
há 8 meses atrás
Baaah me ajudou muito esse topico :D
-> public static void main(String[] args) {
me apresentou um erro que nao poderia ser static
tirei e funcionou blz…
muito boom valeu
há 6 meses atrás
Boa tarde. Você poderia me ajudar por favo? O primeiro exemplo rodou perfeito na linha de comando com o editor VIM do Debian Lenny, porem quando rodo no NetBeans, ele diz que foi executado com sucesso. Esse exemplo dessa página(mysqlconnection) me dá a seguinte saída de erro:
* 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)
há 6 meses atrás
@Rubens
O driver não está carregando. Você deve configurar o classpath inserindo o local do driver do MySQL para que funcione corretamente.
há 6 meses atrás
nao consigo criar a base de dados sera k alguem me pode ajudar!!
abx
há 6 meses atrás
aparecem estes erros::
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)
há 6 meses atrás
@adolfo a senha do banco de dados está errada. Verifique qual senha você está usando, altere a senha no código para a senha correta e tente novamente.
há 4 meses atrás
Muito bom seu post. há tempos estava procurando como conectar, procurei, procurei. mas não havia conseguido.
há 4 meses atrás
Nossa e como ajudou
valeu mesmo
brigadu
há 4 meses atrás
Muito obrigado pela dica , foi muito util para min.
Encontrei muitos tutoriais na web, mas este é o mais objetivo e claro.
há 2 meses atrás
Para iniciantes, Melhor ajuda que encontrei!
Muito bom mesmo!
há 1 mês atrás
EXCELENTE !!!!!!!
há 1 mês atrás
Pois é cara, procurei esta explicação em vários lugares, mas todas são confusas, exceto a sua. Obrigado pela ajuda.
há 3 semanas atrás
Valeu Cara estava quase desistindo do netbeans
e voltando por Delphi
Eka
System.out.println(“Valeu Cara!!!!”);
há 2 semanas atrás
Muito conteudo para muita pouca coisa. Muito Obrigado pela ajuda. Mais um para lista dos mais mais do meu favoritos
há 2 semanas atrás
vom post, me ajudou e com certeza vai ajudar mta gente que ta começando em java parabéns