Dúvida em Banco de Dados com JDBC

Bem, estou começando o estudo de Banco de Dados, só q estou encontrando muitos problemas. Já li o material daqui sobre JDBC não consegui fazer os exemplos tb. Confesso que tenho q ler mais sobre o assunto, só que entrei num projeto na universidade e estou tendo q aprender BD na correria. Sei apenas o básico d SQL, nada d Oracle, básico d algebra relacional, por isso os problemas. Se alguem souber site com um tutorial massa eu aceito.

Mas o motivo desse topico nao eh esse… Aqui segue um algoritmo q eu fiz que pega a informação do driver JDBC. Só que está dando o seguinte erro:

[color=blue]SQLException:[/color] [color=red][Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado[/color]

Could not Get Connection

[code]import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBCDriverInformation {
static String userid=“scott”, password = “tiger”;
static String url = “jdbc:odbc:”;

static Connection con = null;
public static void main(String[] args) throws Exception {
    Connection con = getOracleJDBCConnection();
    if(con!= null){
       System.out.println("Got Connection.");
       DatabaseMetaData meta = con.getMetaData();
       System.out.println("Driver Name : "+meta.getDriverName());
       System.out.println("Driver Version : "+meta.getDriverVersion());

    }else{
	    System.out.println("Could not Get Connection");
    }
}

public static Connection getOracleJDBCConnection(){

	try {
		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");	

	} catch(java.lang.ClassNotFoundException e) {
		System.err.print("ClassNotFoundException: ");
		System.err.println(e.getMessage());
	}

	try {
	   con = DriverManager.getConnection(url, userid, password);
	} catch(SQLException ex) {
		System.err.println("SQLException: " + ex.getMessage());
	}
	
	return con;
}

}
[/code]

O que será que está havendo?

amigo vc criou a fonte de dados no seu sistema?

O que vc está usando por aih?

:arrow: BD
:arrow: IDE

Essas coisas…

[]'s

Como faço pra criar?

To usando o Eclipse, o banco d dados eh o MySQL

Certo…

Então vamos lá…

:arrow: Vc tem que baixar o driver JDBC do MySQL: mysql-connector-java-3.1.14-bin

:arrow: Adicionar o mesmo ao classpath do Eclipse

Depois disso é só criar a conexão…

Segue um exemplo que funciona.

[code] // Cria e retorna uma nova conexão com o BD
private Connection getConnection() {

	Connection conn = null;

	try {
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		String url = "jdbc:mysql://localhost/NOMEDOBD";
		String user = "root";
		String pass = "root";
		conn = DriverManager
				.getConnection(url, user, pass);
	} catch (InstantiationException e) {
		e.printStackTrace();
	} catch (IllegalAccessException e) {
		e.printStackTrace();
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}

	return conn;
}

}[/code]

Faz isso e testa…

qlq coisa dá um tok…

[]'s

Putzz cara… malzão eu to usando Oracle. Mas essa aih do MySQL vai ser util… =D
Tava travado num q eu tava usando MySQL. Vo tentar fazer isso la

Mas, sobre o erro… eu acho q eh na linha q eu declaro o url neh n? Pq eu fiz outra classe q testava o driver oracle e rodou direitinho… da uma olhada

[code]import javax.swing.JOptionPane;

public class TestJDBCDriverInstallation_Oracle {

public static void main(String[] args) {
	StringBuffer output  = new StringBuffer();
	output.append("Testando a instalação do driver oracle \n");
	try {
		String className = "sun.jdbc.odbc.JdbcOdbcDriver";
		Class driverObject = Class.forName(className);
		output.append("Driver : "+driverObject+"\n");
		output.append("Instalação do Driver feita com sucesso");
		JOptionPane.showMessageDialog(null, output);
	} catch (Exception e) {
		output  = new StringBuffer();
		output.append("Instalação do Driver FALHOU\n");
		JOptionPane.showMessageDialog(null, output);
		System.out.println("Falhou: Erro do Driver: " + e.getMessage());
	}
}

}[/code]

So que nessa eu nao testava conexao com o BD, so testava o driver. O problema dessa minha ta no acesso ao BD eu acho.

Tranquilo…

Mas acho q vc deveria utilizar o driver específico do BD…

Se vc tiver utilizando o Oracle 11g, o driver é: ojdbc6

:arrow: Nome do driver: oracle.jdbc.driver.OracleDriver

:arrow: URL: jdbc:oracle:thin:@localhost:1521:NOMEDOBD

O Oracle só tenho conectado pelo hibernate, não tenho nenhuma conexão jdbc pra exemplo, mas vai achar várias com certeza.

[]'s

eu nuum sei criar um BD :cry: :cry: :cry:

como eh q faz hein? No exemplo ai eu to usando driver bridge odbc… agora nuum sei mais nem se eh oracle nem se eh MySQL. Eu tenho qse certeza q o problema eh na variável url, pq nao existe o BD.

Alguem pode me ajudar?

Vc tah com o SGBD(Oracle ou Mysql) instalado, correto?

No MySQL vc pode criar via console mesmo…

É só usar a senha root para entrar no console e utilizar os comandos básicos de sql pra criar o bd, ou seja:

[code]Create database BLABLABLA;
Drop database BLABLABLA;

Select, etc[/code]

Se tiver usando o Oracle, tem uma tool pra criação do BD, é bem tranquilo, é só ir lendo e seguindo os passos.

Quanto ao driver, vc tá usando ODBC, isso vai deixar vc preso a plataforma, o q inutiliza uma grande vantagem do java q é a independencia de plataforma…

Baixa os drivers q falei cria o bd e testa como falei acima.

Pra ajudar, e não se perder. Aconselho a começar pelo “começo”.

Baixa o Mysql. http://mysql.mirrors.hoobly.com/Downloads/MySQL-5.0/mysql-5.0.51a-win32.zip
Baixa o Driver JDBC do mysql. http://dev.mysql.com/downloads/connector/j/3.1.html

Faz isso dpois vai em frente…

Consegui conectar e fazer uma tabela… agora minha duvida eh simples. Como eu faço pra obter o nome das colunas da minha tabela?

Dá uma olhada em MetaData…

[]'s

Ok, consegui ja! Vlw

Galera, tem alguma maneira de impeidr que numa tabela se insira tuplas idênticas?