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:
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.
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…
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?