View Full Version : SQLite e Java
Salve ho un problema facendo girare questo codice:
package sqlite1;
import java.sql.*;
public class Main {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:"+"dbtest";
Connection mCo=DriverManager.getConnection(url);
Statement State_uno = mCo.createStatement();
}
catch(SQLException Ex){
System.out.println("Errore Connessione : "+ Ex);
}
catch(ClassNotFoundException Ex){
System.out.println("Errore Drivers : "+ Ex);
}
}
}
Errore Connessione : java.sql.SQLException: [Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato.
Sapreste Aiutarmi?
sottovento
24-05-2011, 09:46
Hai provato a rimuovere gli spazi in
conn=DriverManager.getConnection("jdbc:sqlite:test .db");
scrivendo "test.db"?
In alternativa:
import SQLite.*;
...
SQLite.Database sqlite_db;
sqlite_db = new SQLite.Database();
sqlite_db.open("test.db", 0666);
System.out.println("DB version: " + sqlite_db.dbversion());
sqlite_db.busy_timeout(1000);
sqlite_db.busy_handler(null);
Sicuramente e' meno elegante della tua...
intanto ho modificato il codice forse il messaggio di errore può darvi più indicazioni..
sottovento
24-05-2011, 10:53
intanto ho modificato il codice forse il messaggio di errore può darvi più indicazioni..
Beh, si. Stai cercando di accedere attraverso il driver "bridge", che fa da ponte fra jdbc e odbc. Non ricordo che SQLite supporti tale driver, ma non posso certamente escluderlo, visto come evolvono le cose. L'hai definito correttamente? (i.e. c'e' l'url corretto? Il nome e' stato definito nel controllo ODBC?)
Beh, si. Stai cercando di accedere attraverso il driver "bridge", che fa da ponte fra jdbc e odbc. Non ricordo che SQLite supporti tale driver, ma non posso certamente escluderlo, visto come evolvono le cose. L'hai definito correttamente? (i.e. c'e' l'url corretto? Il nome e' stato definito nel controllo ODBC?)
Ma come faccio a definire il nome nel controllo ODBC??
Intanto ho provato a fare la stessa procedura su un altro terminale 32Bit e va tutto ok! Forse ci sono problemi dovuti al fatto che il mio è un 64 bit?
Possibile che il problema sia questo?
Andando nell'amministrazione ODBC-->Driver c'è solo:
SQL Server
sottovento
24-05-2011, 11:54
Possibile che il problema sia questo?
Andando nell'amministrazione ODBC-->Driver c'è solo:
SQL Server
Se vuoi utilizzare il driver bridge, ci devi aggiungere anche il tuo database (i.e. driver sqlite e specificare il tuo file).
Dicevi che su un computer 32 bit funziona. Beh, se stai usando il suddetto driver dovresti avere gia' i parametri necessari. Prova a darci un'occhiata.
Salve ho un problema facendo girare questo codice:
package sqlite1;
import java.sql.*;
public class Main {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:"+"dbtest";
Connection mCo=DriverManager.getConnection(url);
Statement State_uno = mCo.createStatement();
}
catch(SQLException Ex){
System.out.println("Errore Connessione : "+ Ex);
}
catch(ClassNotFoundException Ex){
System.out.println("Errore Drivers : "+ Ex);
}
}
}
Errore Connessione : java.sql.SQLException: [Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato.
Sapreste Aiutarmi?
Scarica questo driver (uno tra i tanti):
http://www.zentus.com/sqlitejdbc/
e aggiungilo al classpath. C'è anche un esempio nella pagina del dowload comunque ti basta modificare
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:"+"dbtest";
in
Class.forName("org.sqlite.JDBC");
String url="jdbc:sqlite:dbtest";
Il driver che usi adesso
"sun.jdbc.odbc.JdbcOdbcDriver"
richiede un'interfaccia odbc che, se non vado errato (ma non fidarti), per sqlite va installato separatamente (http://www.ch-werner.de/sqliteodbc/).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.