【问题标题】:sqlite jdbc Eclipse database relative pathsqlite jdbc Eclipse 数据库相对路径
【发布时间】:2015-10-15 04:48:31
【问题描述】:

我正在尝试在 Eclipse Luna 和 Windows 7 下使用 Sqlite、jdbc。

当我使用 Sqlite 数据库的绝对路径时一切正常,但是当使用相对路径时,我得到了这个错误:

java.sql.SQLException: [SQLITE_ERROR] SQL 错误或缺少数据库。

我花了一些时间谷歌搜索这个问题,答案是:是的,你可以使用 jdbc 连接的相对路径。但是它对我不起作用。

我的代码:

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";
}

}

【问题讨论】:

  • 同样的问题这个问题..研究工作..
  • 找到这个解决方案我得到了帮助

标签: java eclipse sqlite jdbc


【解决方案1】:

使用Eclipse在sqlite jdbc数据库连接中设置相对路径

1) 进入运行菜单并选择运行配置

2) 选择第二个标签 (x)=Arguments

3) 在最后一个面板或部分名称是工作目录

4) 点击其他单选按钮

5) 点击File SystemWorkspace按钮并设置您的项目名称

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()

【讨论】:

    【解决方案2】:

    将您的数据库放在以下文件夹中,然后使用相对路径重试:

    /JavaProjects/workspace/多态

    这应该可以。

    【讨论】:

      【解决方案3】:

      问题是没有完整路径,jdbc 会尝试在当前路径中定位数据库。

      我不完全确定,但我认为这应该是项目的根源。

      所以你可以把SQLite文件放在这个目录下或者使用路径

      【讨论】:

        猜你喜欢
        • 2012-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多