URL`s para o JDBC [CONCLUÍDO]

Olá Pessoal!

Eu nunca fui muito amigo de banco de dados e sempre “fugi” do assunto, mesmo quando só programava em C/C++. Agora que estou aprendendo Java, vi que é importante saber o JDBC, então comecei a estudar pra ver se aprendo!
Porém, não consigo entender algumas coisas…
Instalei o mysql em minha máquina e fiz o download do Connector/J. Extrai o pacote do Connector/J em um diretório aqui e tal… o mysql tá rodando direitinho também…
Na hora de escrever um código básico para simplesmente fazer a conexão com o banco de dados, surge a dúvida… como funciona esse esquema de endereó para o driver? Tipo:

String url = "jdbc:mysql://bla bla bla";

ou

String driver = "com.imaginary.sql.msql.MsqlDriver";

A partir dos locais onde instalei o mysql e o Connector/J na minha maquina, o que colocar nestas Strings? Como funciona esse formato de URL?

Obrigado!

Cara…seguinte:

String driver = “com.imaginary.sql.msql.MsqlDriver”;

Aqui vc coloca o nome completo da classe q comunica com o banco…o driver mais atual do mysql usa a classe “com.mysql.jdbc.Driver”. Para isso funcionar basta vc colocar o driver do mysql no classpath d sua aplicação.

String url = “jdbc:mysql://bla bla bla”;

Aqui vc tem q escrever a url que indica onde está o seu banco. Um exemplo de url pode ser “jdbc:mysql://127.0.0.1:3306/teste”, onde “127.0.0.1” eh o endereço da makina onde esta o banco, “3306” eh a porta que vc vai usar pra conectar com o banco(esse valor eh default) e “teste” eh o nome do banco q vc deseja se conectar. Tb tem outra forma de url, onde vc passa tb o usuario e a senha do banco.

Qualker coisa posta aew…
Vlw!!

Pessoal estou tentando de todo o jeito rodar o código abaixo:

import java.sql.*;

public class testeDB {	

	public static void main(String args[]) {
		Connection connection = null;
		Statement statement = null;
		
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection("jdbc:mysql://localhost/test");
			
			statement = connection.createStatement();			
		}
		catch(Exception e) {
			System.out.println("Excecao!");
			e.printStackTrace();
		}	
	}
}

Mas não está dando certo! O código compila numa boa, porém na hora de execyutar não vai nem ferrando… Coloquei o caminho para o driver assim:

JAVA_HOME=/usr/local/share/jdk1.5.0
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/local/share/jdk1.5.0/jre/bin:/usr/local/share/jdk1.5.0/bin
CLASSPATH=$JAVA_HOME/jre/lib:/home/cassio/ #home/cassio é onde coloquei o driver
CLASSPATH=.:$CLASSPATH
export PATH JAVA_HOME CLASSPATH

E já tentei rodar de tudo que é jeito

~> java -cp /home/cassio/ testeDB 
~> java -cp . $CLASSPATH testeDB

Me dá o erro

Exception in thread "main" java.lang.NoClassDefFoundError: /:/usr/local/share/jdk1/5/0/jre/lib
~> java java -cp $CLASSPATH testeDB
~> java java -cp $CLASSPATH testeDB
~> java -cp . $CLASSPATH /home/cassio/ testeDB 

Ele até roda, mas dá a exceção abaixo:

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:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at testeDB.main(testeDB.java:12)

Não sei é problema na maneira com que escrevi o CLASSPATH dentro do .profile, ou se é a maneira como estou chamando a JVM na linha de comando…

O que estou fazendo de errado?!

Muito obrigado!

Pessoal, já dei um jeito, agora está funcionando!

coloquei o arquivo .jar do driver em $JAVA_HOME/jre/lib/ext e funcionou na boa!

Obrigado!

Bá, desculpa se eu tiver falando merda, mas tu não tem que registrar wlw no SO?
Eu sei que tem dois jeitos, eu já usei ambos. Um é sabendo onde está fisicamente o banco, o outro é registrando ele no sistema. Não sei daqui de cor, mas assim que chegar em casa te responde, pode ser?

vlw :wink: