I'm new to Java so forgive me for my question. I'm trying to use Sqlite, jdbc under Eclipse Luna & Windows 7. Everything works fine when I use absolute path to the Sqlite database but when relative path used I get an error: "java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database." I spend some time googling this problem. The answer is Yes you can use relative path with jdbc connection. However it does not work for me. Thank you in advance for your help.
Here is my code:
package PortiaMoxy;
import static net.mindview.util.Print.*;
String inPath; // incoming file
String outPath; // converted file from incoming file
public File() {
// Connect to Sqlite db
Connection c = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("org.sqlite.JDBC");
//
// This connection works fine
//
//c = DriverManager.getConnection("jdbc:sqlite:/JavaProjects/workspace/Polymorphism/sources/PortiaMoxy/moxyimport.sqlite");
//
// This connection doesn't work. ???
//
c = DriverManager.getConnection("jdbc:sqlite:moxyimport.sqlite");
c.setAutoCommit(false);
print("File(): Opened database successfully.");
stmt = c.createStatement();
String query = "select ID \"id\", VALUE \"value\"";
query += "from infiles;";
rs = stmt.executeQuery(query);
if (!rs.isBeforeFirst() ) {
System.out.println("No data");
}
while(rs.next()) {
String id = rs.getString(1);
String value = rs.getString(2);
print(" ID = " + id + " Value = " + value);
} // end of while
rs.close();
stmt.close();
c.close();
} // end of try
catch (SQLException ex) {
print(ex.getClass().getName() + ": " + ex.getMessage());
System.exit(0);
}
catch (Exception e ) {
print(e.getClass().getName() + ": " + e.getMessage());
System.exit(0);
}
} // end of class
public int convert() {
print(what());
print("Generic convert");
return 0;
}
public String what() {
return "File";
}
}
Aucun commentaire:
Enregistrer un commentaire