Java sqlite jdbc Eclipse数据库相对路径
我试图在EclipseLuna和Windows7下使用Sqlite和jdbc 使用Sqlite数据库的绝对路径时,一切正常,但使用相对路径时,出现以下错误: java.sql.SQLException:[SQLITE\u ERROR]sql错误或缺少数据库 我花了一些时间在谷歌上搜索这个问题,答案是:是的,您可以使用相对路径和jdbc连接。然而,这对我不起作用 我的代码:Java sqlite jdbc Eclipse数据库相对路径,java,eclipse,sqlite,jdbc,Java,Eclipse,Sqlite,Jdbc,我试图在EclipseLuna和Windows7下使用Sqlite和jdbc 使用Sqlite数据库的绝对路径时,一切正常,但使用相对路径时,出现以下错误: java.sql.SQLException:[SQLITE\u ERROR]sql错误或缺少数据库 我花了一些时间在谷歌上搜索这个问题,答案是:是的,您可以使用相对路径和jdbc连接。然而,这对我不起作用 我的代码: package PortiaMoxy; import static net.mindview.util.Print.*; S
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";
}
}
问题是,如果没有完整路径,jdbc将尝试在当前路径中定位数据库 我不完全确定,但我认为这应该是该项目的根本
因此,您可以将SQLite文件放在此目录中,或使用路径将数据库放在以下文件夹中,然后使用相对路径重试: /JavaProjects/workspace/polymorphics 这应该行得通 使用Eclipse在sqlite jdbc数据库连接中设置相对路径 1) 转到运行菜单并选择运行配置 2) 选择第二个选项卡(x)=参数 3) 在最后一个面板或部分中,名称为工作目录 4) 单击其他单选按钮 5) 单击文件系统或工作区按钮并设置项目名称 6) 单击应用按钮
//Import the database in your project workspace like 'Demo.db'
Connection conn = null;
public static void connect()
{
File dbfile=new File(".");
String url="jdbc:sqlite:"+dbfile.getAbsolutePath()+"\\Demo.db";
System.out.println(url);
try {
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection(url);
} catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
System.out.println("Connection successfully");
}//end connection()
同样的问题这个问题…研究努力…找到这个解决方案我帮了你