Pessoal, estou aprendendo java e como tive dificuldades em conectá-lo ao MySQL, estou postando aqui o caminho percorrido até conseguir que tudo funcionasse a contento.
Na seqüência temos os passos para a criação de uma banco de dados chamado "biblioteca", uma tabela chamada "teste", para o usuário "admin" com senha "123456".
A parte mais complicada foi determinar a forma de conexão, bem como o lugar onde colocar a biblioteca de conexão (.jar). Vejam a seqüência:
Colocar o arquivo mysql-connector-java-5.1.5-bin.jar (obtido em:
http://www.mysql.com/products/connector/j/ ) no diretório /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext/.
Criar no MySQL o banco: biblioteca
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 30
Server version: 5.0.45-Debian_1ubuntu3-log Debian etch distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
create database biblioteca;
Query OK, 1 row affected (0.01 sec)
mysql>
grant all privileges on biblioteca.* to admin identified by "123456";
Query OK, 0 rows affected (0.02 sec)
mysql>
create table teste(codigo varchar(10), nome varchar(30));
Query OK, 0 rows affected (0.00 sec)
mysql>
insert into teste(codigo,nome) values("123","teste1");
Query OK, 1 row affected (0.00 sec)
mysql>
insert into teste(codigo,nome) values("122","teste2");
Query OK, 1 row affected (0.00 sec)
mysql>
insert into teste(codigo,nome) values("124","teste4");
Query OK, 1 row affected (0.01 sec)
mysql>
select * from teste;
+--------+--------+
| codigo | nome |
+--------+--------+
| 123 | teste1 |
| 122 | teste2 |
| 124 | teste4 |
+--------+--------+
3 rows in set (0.00 sec)
mysql>
quit
Bye
Crie o arquivo teste4.java com o seguinte conteúdo:
import java.sql.*;
public class teste4
{
public static void main(String[] args)
{
String url = "jdbc:mysql://localhost:3306/biblioteca";
String login = "admin";
String senha = "123456";
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("\nDriver carregado com sucesso!\n");
try
{
Connection conn = DriverManager.getConnection(url, login, senha);
try
{
String sql = "SELECT codigo,nome FROM teste";
Statement stm = conn.createStatement();
try
{
ResultSet rs = stm.executeQuery(sql);
while (rs.next())
{
String nome = rs.getString("nome");
String codigo = rs.getString("codigo");
System.out.println("Codigo: " + codigo + "\nNome: " +nome);
System.out.println("---------------------------------------");
}
System.out.println("\nConsulta realizada com sucesso!!!\n");
}
catch (Exception ex)
{
System.out.println("\nErro no resultset!");
}
}
catch (Exception ex)
{
System.out.println("\nErro no statement!");
}
}
catch (Exception ex)
{
System.out.println("\nErro no connection!");
}
}
catch (Exception ex)
{
System.out.println("\nDriver nao pode ser carregado!");
}
}
}
Na linha de comando, compilando e executando:
$ javac teste4.java; java teste4
Driver carregado com sucesso!
Codigo: 123
Nome: teste1
---------------------------------------
Codigo: 122
Nome: teste2
---------------------------------------
Codigo: 124
Nome: teste4
---------------------------------------
Consulta realizada com sucesso!!!
Espero que seja útil para outros colegas.
Um abraço.
Ronaldo Trindade.
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada
Resolvendo erro do servidor Tomcat no Eclipse: "Cannot create a server using the selected type"
Problemas com o classpath e o driver do MySQL no Java
ERP rodando em plataforma Linux
Vídeo tutoriais: Agenda com NetBeans e MySQL
Logs do Squid de forma legível
Comentários
Apenas uma contribuição para quem não tenha muita experiência com o MySQL.
Antes de executar a linha
mysql> create table teste(codigo varchar(10), nome varchar(30));
é necessário selecionar a base de dados de interesse. Isso é feito através do seguinte comando:
mysql> use biblioteca;
Vlw
Cara valeu a dica!!!!
Estava aqui quebrando cabeça, e com uns ajustes a minha realidade consegui fazer a conexao com o banco mysql.
Muito bom exemplo para quem precisa aprender rápido a fazer uma conexo com o banco de dados e java!
Valeu Ronaldo!
Mensagem
Cara valeu a dica!!!!
Estava aqui quebrando cabeça, e com uns ajustes a minha realidade consegui fazer a conexao com o banco mysql.
Muito bom exemplo para quem precisa aprender rápido a fazer uma conexo com o banco de dados e java!
Valeu Ronaldo!
Valeu pela dica amigo!
Mensagem
Valeu pela dica amigo!
Valeu cara, um parte do seu trabalho me ajudou muito.
Mensagem
Valeu cara, um parte do seu trabalho me ajudou muito.
Mais um dica para quem está aprendendo como eu.
//Caminho do pacote
package br.com.jfh.mysql.jdbc;
//Imports
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
*
* @author jacsonfh
* @version 0.1
*/
public class AcessoBanco {
//Não estou tratando as Exceptions intensionalmente para ver o código puro e testar.
public static void main(String[] args) throws Exception {
String sql = "SELECT * FROM dti.documentos";
String url = "jdbc:mysql://localhost:3306/dti";
try (java.sql.Connection con = DriverManager.getConnection(url, "root", "root");
PreparedStatement stm = con.prepareStatement(sql);
ResultSet rs = stm.executeQuery()) {
while (rs.next()) {
String s = rs.getString("iddocumentos")
+ "; " + rs.getString("titulo")
+ "; " + rs.getString("descricao")
+ "; " + rs.getString("datacria")
+ "; " + rs.getString("dataaltera")
+ "; " + rs.getString("anexos");
String tipo = rs.getString("idtipo");
String sqltipo = "SELECT * FROM dti.tipos";
PreparedStatement stm2 = con.prepareStatement(sqltipo);
ResultSet rstipo = stm2.executeQuery()
){
while (rstipo.next()) {
if (rstipo.getString("idtipos").equals(rs.getString("idtipo"))) {
s = s + "; " + rstipo.getString("descricao");
}
}
System.out.println(s);
}
}
}
}
Mensagem
Mais um dica para quem está aprendendo como eu.
//Caminho do pacote
package br.com.jfh.mysql.jdbc;
//Imports
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
*
* @author jacsonfh
* @version 0.1
*/
public class AcessoBanco {
//Não estou tratando as Exceptions intensionalmente para ver o código puro e testar.
public static void main(String[] args) throws Exception {
String sql = "SELECT * FROM dti.documentos";
String url = "jdbc:mysql://localhost:3306/dti";
try (java.sql.Connection con = DriverManager.getConnection(url, "root", "root");
PreparedStatement stm = con.prepareStatement(sql);
ResultSet rs = stm.executeQuery()) {
while (rs.next()) {
String s = rs.getString("iddocumentos")
+ "; " + rs.getString("titulo")
+ "; " + rs.getString("descricao")
+ "; " + rs.getString("datacria")
+ "; " + rs.getString("dataaltera")
+ "; " + rs.getString("anexos");
String tipo = rs.getString("idtipo");
String sqltipo = "SELECT * FROM dti.tipos";
PreparedStatement stm2 = con.prepareStatement(sqltipo);
ResultSet rstipo = stm2.executeQuery()
){
while (rstipo.next()) {
if (rstipo.getString("idtipos").equals(rs.getString("idtipo"))) {
s = s + "; " + rstipo.getString("descricao");
}
}
System.out.println(s);
}
}
}
}
Contribuir com comentário
Enviar