Escrevendo aplicações com MySQL e Java

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.

[ Hits: 175.311 ]

Por: Alan Rafael Rodrigo Batista em 18/08/2004


Explicando o código



import java.sql.*;
Esta linha importa as classes referentes a consultas SQL.

Class.forName("com.mysql.jdbc.Driver");
Esta linha invoca o driver mysql, onde está "com.mysql.jdbc.Driver" pode ser substituído por "org.gjt.mm.mysql.Driver", mantido por questões de compatibilidade (os mais experientes podem questionar ;P).

conn = DriverManager.getConnection( "jdbc:mysql://localhost/test?user=root" );
Nesta linha conecta-se ao banco de dados. A URL "jdbc:mysql://localhost/test?user=root" é composta por:

jdbc:mysql://HOST_DO_MYSQL/ NOME_DO_BANCO ? user=USUARIO&password=SENHA

Statement stm = conn.createStatement();
Aqui é criado um Statement para ser usado nas consultas.

ResultSet rs = stm.executeQuery(teste);
Executa a consulta definido na String 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);    
    ...
}

Enquanto houver registros (rs.next) será executado este trecho. Em rs.getString("NOME_DO_CAMPO") é retornado os dados do campo.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Obtendo o conector
   3. Criando um ambiente de teste
   4. O programa teste
   5. Explicando o código
   6. Finalizando e referências
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Criando classe Java para conectar e manipular dados no MySQL

Criar um Pool de Conexão entre o GlassFish 3.1 e PostgreeSQL

Trabalhando com Java e SQL (parte 1)

Imagens e áudio no banco de dados Oracle

Hibernate - Persistindo dados como se fosse objetos

  
Comentários
[1] Comentário enviado por wronieri em 18/08/2004 - 09:57h

Valeu arrb vai ser de grande ajuda na minha monografia :-)

[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+

[3] Comentário enviado por nanica em 19/08/2004 - 19:08h

falo cara

[4] Comentário enviado por arrb em 20/08/2004 - 12:46h

Valew Galera!

Tô pensando em escrever um artigo sobre Java com SQLite para pequenas aplicações mas de grande utilidade!

Aguardem...

[5] Comentário enviado por FaiSCa_sk8 em 26/08/2004 - 00:50h

Muito r0x o artigo to iniciando agora ja sakava alho de MySQL e vai ser uma boua parender algo sobre os 2 :D

[6] Comentário enviado por Lorenz em 04/11/2004 - 14:29h

Muito bom cara!! ajudou um monte

[7] Comentário enviado por cccsgvcc em 04/03/2005 - 14:17h

Excelente, parabéns Alan, funcionou na primeira... Com pessoas como você, quem precisa de Bill Gates e compania?!...
Abraços.

[8] Comentário enviado por efantini em 08/04/2005 - 20:20h

Otímo. Funcionou direitinho do conectiva 9.

[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:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused

STACKTRACE:

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

[10] Comentário enviado por throdines em 12/11/2006 - 22:50h

Estou com o mesmo problema, está tudo funcionando (java e mysql). Mas sempre que executo dá connection refused

[11] Comentário enviado por fera30 em 08/05/2007 - 20:26h

Na hora de compilar dá o seguinte erro:

Exception in thread "main" java.lang.NullPointerException
at BancoTeste.main(BancoTeste.java)

[12] Comentário enviado por The.NightWisher em 09/11/2007 - 22:44h

tem um erro na assinatura do metodo main()

ao invés de "String args[]"
o correto é "String[] args"
ficando assim: "public static void main(String[] args)"
(tudo sem aspas, claro)

valeu pelo artigo, Alan.


[13] Comentário enviado por sdxandy em 05/03/2008 - 06:31h

xou de bola

[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?

[15] Comentário enviado por kaleu em 15/11/2008 - 10:55h

Edonato, para mim resolveu copiar o driver para o diretório /usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/ext/
Eu uso Ubuntu 8.04

[16] Comentário enviado por kaleu em 15/11/2008 - 10:57h

Cara, último Post só pra agradecer.!!
Valeu pela iniciativa de colocar aqui o conteúdo.!!

:-D

Abraços.!!

[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 !!!


Grato pela ajuda!!

[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.

Valeu !!!

[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#
________________________________________________________________________________________________________________________________________

[20] Comentário enviado por arrb em 25/02/2010 - 12:02h

Henbran

Voce deve executar o comando assim:

java BancoTeste

sem o .class

[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)

[22] Comentário enviado por arrb em 08/09/2010 - 16:00h

@ronycleber

Faltou vc fazer os passos da pagina "Obtendo o conector".

[]'s

Alan Rafael

[23] Comentário enviado por CiroboyBR em 24/03/2015 - 17:48h


Muito bom o conteudo cara, você escreveu o artigo em 2004, 10 anos depois ele me serviu. Valew.

[24] Comentário enviado por arrb em 04/06/2016 - 01:50h


[23] Comentário enviado por CiroboyBR em 24/03/2015 - 17:48h


Muito bom o conteudo cara, você escreveu o artigo em 2004, 10 anos depois ele me serviu. Valew.


Bom saber! Abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts