Neste artigo descreverei como conectar banco de dados
MySQL com Java através do conector JDBC. Este artigo é para
os iniciantes na linguagem e que desejam escrever
aplicações com estes dois campeões de audiência.
Agora nós finalmente vamos ao que interessa, o programinha em
Java:
import java.sql.*;
public class BancoTeste {
public static void main(String args[]) {
System.out.println("Testando acesso a banco de dado MySQL\n\n");
Connection conn = null;
String teste = "SELECT codigo,nome,sobrenome FROM testeJava;";
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection( "jdbc:mysql://localhost/test?user=root" );
System.out.println("A conexão foi um sucesso\n");
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(teste);
while (rs.next()) {
String nome = rs.getString("nome");
String codigo = rs.getString("codigo");
String sobrenome = rs.getString("sobrenome");
System.out.println("Codigo: " + codigo + "\nNome: " +nome+ " Sobrenome: " + sobrenome);
System.out.println("---------------------------------------");
}
System.out.println("\n\nConsulta realizada com sucesso!!!\n");
} catch(ClassNotFoundException e) {
System.out.println("excessão Classe não encontrada");
e.printStackTrace();
} catch(SQLException e) {
System.out.println("SQL Exception... Erro na consulta:");
e.printStackTrace();
} finally {
try {
conn.close();
System.out.println("\n\nFechamendo a conexão");
} catch(SQLException erro) {
System.out.println("Erro no fechamento");
erro.printStackTrace();
}
}
}
}
Salve o mesmo como BancoTeste.java e execute:
$ javac BancoTeste.java
$ java BancoTeste
Se estiver tudo certo parabéns! Você já programa com Java e
MySQL, caso contrário verifique os últimos passos e se não
há erros de digitação.
[2] Comentário enviado por removido em 18/08/2004 - 17:19h
muito bom artigo....parabéns
soh pra dar uma outra opcao q fica mais claro pra quem tah iniciando, pode-se usar o método getConnection com atributos separados, como segue abaixo:
DriverManager.getConnection( "jdbc:mysql://localhost/test","root","senha");
pra kem ta começando eh sempre bom olhar as possíveis opções na API Java.
espero o próximo :)
falo t+
[9] Comentário enviado por super-root em 23/04/2006 - 19:51h
Muito bom o artigo...
Mas estou com um probleminha. Estou utilizando o slacware 10.2, o java ja esta tudo configurdo porem ao efetur a conexao ocorre o seguinte erro:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
java.net.SocketException: java.net.ConnectException: Connection refused
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:151)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1699)
at com.mysql.jdbc.Connection.<init>(Connection.java:405)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at BancoTeste.main(BancoTeste.java:13)
** END NESTED EXCEPTION **
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1764)
at com.mysql.jdbc.Connection.<init>(Connection.java:405)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at BancoTeste.main(BancoTeste.java:13)
Exception in thread "main" java.lang.NullPointerException
at BancoTeste.main(BancoTeste.java:33)
Ja tentei de tudo e estou precisando de fazer isso no linux pois estou escrevendo um artigo sobre classes em java. No windows funconou perfeitamente porem no linux fica dando esse erro. Alguem sabe de alguma coisa que possa resolver esse problema?
Realizei um teste de conexao com o Php e funcionou mas no java ocorre isso
[14] Comentário enviado por edonato em 19/09/2008 - 18:12h
Gostei muito do artigo, que tem apenas o mínimo indispensável para demonstrar o que interessa. Mas tive um problema ao executar:
Testando acesso a banco de dado MySQL
excessÒo Classe nÒo encontrada
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at BancoTeste.main(BancoTeste.java:10)
Exception in thread "main" java.lang.NullPointerException
at BancoTeste.main(BancoTeste.java:31)
Tentei usar "com.mysql.jdbc.Driver" antes, como sugerido, mas não consegui tb.
Uso Slackware 12.1. Alguém teve o mesmo problema?
[17] Comentário enviado por joe7 em 27/02/2009 - 18:46h
Caro arrb,
Quero agradecer pelo tutorial postado de uma forma simples, não obstante, objetiva. Parabéns!!!
OBS.:
Eu uso Kurumin7 e fiz uma pequena mudança na configuração. Em vez de copiar o .jar pra " /usr/lib/java/jre/lib/ext/ ", copiei pra /urs/lib/java/lib/ext/ e funcionou !!!
[18] Comentário enviado por ramon.rdm em 25/04/2009 - 22:19h
Alan, meus parabens pelo artigo!
Foi graças a ele que consegui realizar a conexao java/mysql .
muito bom e explicativo de suma importancia a quem trabalha com tecnologias java.
Deixo tambem minha colaboração para os curiosos,
o que seria mesmo o "Statement stm = conn.createStatement();":
O método Connection.createStatement() te devolve um objeto java.sql.Statement, que representa uma simples Query ou comando.
[19] Comentário enviado por henbran em 24/02/2010 - 21:41h
Está rolando o seguinte erro ...:
________________________________________________________________________________________________________________________________________
root@paulo-desktop:~/NetBeansProjects/conn_mysql/build/compiled# java BancoTeste.class
Exception in thread "main" java.lang.NoClassDefFoundError: BancoTeste/class
Caused by: java.lang.ClassNotFoundException: BancoTeste.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
Could not find the main class: BancoTeste.class. Program will exit.
root@paulo-desktop:~/NetBeansProjects/conn_mysql/build/compiled#
________________________________________________________________________________________________________________________________________
[21] Comentário enviado por ronycleber em 08/09/2010 - 14:10h
Olá, alguem pode me dar uma ajuda, tentei realizar essa conexão porém deu esse erro!
Testando acesso a banco de dado MySQL
excessão Classe não encontrada
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at BancoTeste.main(BancoTeste.java:10)
Exception in thread "main" java.lang.NullPointerException
at BancoTeste.main(BancoTeste.java:31)