Newsgroup: it.comp.java
Titolo: JDBC

Come driver per la connessione a DB ho sempre usato il bridge jdbc:odbc.
Ora invece vorrei utilizzare un driver jdbc specifico per il mio db(nel mio
caso MySql).
Ho scaricato il driver jdbc mm.mysql.jdbc-1.2c.tar.gz e ora mi chiedo:
1)Mi serve tutto il contenuto del file compresso o devo estrarre solo alcuni
file?
2)In che directory devo mettere questo file (o quelli che devo estrarre)per
fare in modo che la mia classe li veda?
3)Che devo passare al metodo registerDriver(Driver d)(in pratica che devo
mettere al posto di new sun.jdbc.odbc.JdbcOdbcDriver() che usavo col driver
jdbc:odbc).
Ciao 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Ciao 
Non devi chiamare registerDriver esplicitamente - questo viene fatto dal
driver stesso. Devi usare Class.forName(..nome della classe del driver..) 
oppure passare sulla linea di comando la proprieta' jdbc.drivers=....nomi
dei driver.... 
-- 
Life's something u don't get out alive..
ObjectZone - 
http://space.tin.it/computer/csadun

 jdbc:odbc).
Leggi la documentazione di MySQL.
Davide

Una volta caricata la classe con il Class.forName("classe del driver") cosa 
devo passare al metodo getConnection?
Grazie!!!!



RTFM.
---
| Bruno Bossola
| A Java Software Engineer :-)
| 
http://members.xoom.it/bbruno
| 
http://digilander.iol.it/bbossola

Il fottuto manuale l'ho letto e dice semplicemente che la getConnection prende
in ingresso l'URL del DB nella forma jdbc:subprotocol:subname; in un mondo 
perfetto questo basterebbe, ma in questo FM (fottuto mondo) non và sempre così.
Nel caso specifico di mySql qual è il subprotocol e qual è il sub name; questo
TFM non lo dice (al meno il mio; se il tuo è migliore fammi sapere)!!!!!!!!!!!


No, il manuale di JDBC non l'hai letto, altrimenti avresti saputo a suo tempo come
caricare un driver JDBC senza postare su questo NG (vedi il post originale) .
E se adesso forse l'hai fatto, e hai trovato la risposta, puoi fare lo stesso con la
documentazione del database che stai cercando di usare.
Ciao,
    Bruno.


---


 migliore fammi sapere)!!!!!!!!!! 
RTFDM? :-)
oppure, dato che ce l'ho sottomano, leggi la riga seguente:
URL Format: jdbc:mysql://[host]:[port]/[database] 


Visto che è la prima volta che uso librerie aggiuntive a quelle del jdk, non
sapevo che all'interno dello zip che ho scaricato c'era anche la documentazione
e in un primo momento non l'ho vista(e neanche l'ho cercata)!Dopo che tutti 
"gentilmente" mi avete invitato a RTFM (che io neanche sapevo di avere) ho 
spulciato meglio il .zip e l'ho trovato.Grazie cmq dell'informazione e visto
che
mi sembra che anche tu hai effettuato connessioni a mySql ti pongo quest'altro
problema.Dopo aver compilato con successo la mia classe che non fa altro che
creare una tabella all'interno di un db, mando in esecuzione e ho questo
messaggio:
java.lang.NoClassDefFoundError: org/gjt/mm/mysql/Driver.
Devo importare qualcos'altro oltre a java.sql.*?
Grazie


 Devo importare qualcos'altro oltre a java.sql.*?
Non e' questione di cosa importi, ma di quali classi la JVM trova a runtime. 
Il ClassLoader della JVM non trova la classe org.gjt.mm.mysql.Driver: di 
conseguenza, o il nome e' sbagliato, oppure il nome e' giusto ma non e' in 
classpath. Nel primo caso, devi capire il nome corretto; nel secondo, 
supponendo che mysql ti fornisca un .jar con le classi del driver, devi 
metterlo in classpath.
Vedi 
http://space.tin.it/computer/csadun/javafaq.html#d1-15
 , punto 3.


Devo importare qualcos'altro oltre a java.sql.*?
import java.sql.*
public class TestDataBase
{
	public static void main(String[] args)throws Exception
	{
Class.forname("org.gjt.mm.mysql.Driver").newInstance();
		Connection conn=DriverManager.getConnection
			("jdbc:mysql://localhost/mysql","root","");
		Statement stmt=conn.createStatement();
		ResultSet rs=stmt.executeQuery
			("SELECT User FROM user");
		while(rs.next())
			System.out.println(rs.getString("User"));
	}
}
Naturalmente il package org.gjt.mm.mysql deve essere nel classpath
(cioè, o nella directory di lavoro, o nella directory /ext, o in una
directory specificata dalla envvar CLASSPATH).
HTH,
Mauri.
-- 
La forza di gravità è un falso mito,
è la Terra che succhia!

Grazie per avermi postato il codice, perņ il mio problema č il passo
successivo.
Quando compilo scrivo:
javac -deprecation -classpath
C:/jdk1.3.1/jre/lib/mm.mysql.jdbc-1.2c/mysql_comp.jar;
C:/jdk1.3.1/jre/lib/mm.mysql.jdbc-1.2c/mysql_uncomp.jar CreateTablesApp.java
La compilazione avviene con successo.
Quando lancio il .class scrivo:
java CreateTablesApp
A questo punto ho il seguente errore:
Exception: org.gjt.mm.mysql.Driver
java.lang.ClassNotFoundException: org.gjt.mm.mysql.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:297)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:120)
        at CreateTablesApp.createTable(CreateTablesApp.java:10)
        at CreateTablesApp.main(CreateTablesApp.java:48)
Come mai quando compilo la classe la vede e quando la lancio no?Forse devo
mettere
il classpath anche quando lancio il .class?Se si qual'č la sintassi esatta?
Grazie e ciao.


 
Leggi la FAQ, all'indirizzo che ti ho detto.


> Leggi la FAQ, all'indirizzo che ti ho detto.
Ho letto la faq, ho seguito la procedura settando il classpath
nell'autoexec.bat
in questo modo:
SET
CLASSPATH=C:\jdk1.3.1\jre\lib\mm.mysql.jdbc-1.2c\mysql_comp.jar;C:\jdk1.3.1\jre\lib\mm.mysql.jdbc-1.2c\mysql_uncomp.jar;
ok
Compilo:
javac CreateTablesApp.java
ok
Lancio:
java CreateTablesApp
Exception in thread "main" java.lang.NoClassDefFoundError: CreateTablesApp
Eppure nella cartella di lavoro c'è CreateTablesApp.class
Cosa c'è che non và?


Cosa c'è che non và?
Manca il . (punto) nel CLASSPATH
http://java.sun.com/j2se/1.3/install-windows.html#Classpath
-- 
Ciao
	Fabrizio C.

 
http://java.sun.com/j2se/1.3/install-windows.html#Classpath
Ho visto il link ma non ho capito dove và messo questo punto:ho provato ad 
aggiungere ;. ma tutto come prima.


aggiungere ;. ma tutto come prima.
Bisogna vedere *come* lo hai aggiunto.
set CLASSPATH = .;%CLASSPATH%
?
-- 
Ciao
	Fabrizio C.