JDBC无法解析为Eclipse中的变量

时间:2015-02-26 16:16:35

标签: java eclipse sqlite jdbc classpath

目前正在尝试使用作为作业一部分提供给我的sqlite-dbc4-3.8.2-SNAPSHOT.jar。我试过运行我的主文件,我得到以下错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    org.sqlite.JDBC cannot be resolved to a variable

    at DbBasic.open(DbBasic.java:54)
    at DbBasic.<init>(DbBasic.java:67)
    at DbUser.<init>(DbUser.java:40)
    at Main.go(Main.java:12)
    at Main.main(Main.java:65)

以下是尝试使用JDBC连接和打开数据库的DbBasic类的一部分:

  private Connection getConnection()
  // get the connection
  {
    Connection con = null;
    try {

        con = DriverManager.getConnection(SQLITE_DATABASE_LOCATION+dbName);
        con.setAutoCommit(false);
    }
    catch (SQLException sqle)
    {
      notify("Db.getConnection database location ["+SQLITE_DATABASE_LOCATION+"] db name["+dbName+"]", sqle);
    };
    return con;
  } // end of method "getConnection"

  private void open()
  // "open" the database : actually really setting up the connection and obtaining the metadata about the server
    // makes sure that database file is present before trying to establish connection
    // otherwise SQLite will create a new, empty database with the name provided
  {
    File dbf = new File(dbName);
    if (dbf.exists() == false)
    {
        System.out.println("SQLite database file ["+dbName+"] does not exist");
        System.exit(0);
    };

    try {

        Class.forName(org.sqlite.JDBC);
        con  = getConnection();
    } catch ( ClassNotFoundException cnfe ) {
      notify("Db.Open",cnfe);
    };
    if (debug) System.out.println("Db.Open : leaving");
  } // end of constructor "Open"

我已经尝试添加外部JAR,然后将.jar文件添加到Eclipse中的“Referenced Libraries”中。

我无法理解Class.forName(org.sqlite.JDBC)以及如何使用我的.jar文件

1 个答案:

答案 0 :(得分:0)

虽然帖子相对较旧,OP现在不再对这个问题的解决方案感兴趣,但想到把它作为答案。它可能会帮助遇到这种愚蠢问题的人。这是人们在将Eclipse用作IDE时常犯的错误之一,尝试运行甚至无法编译的代码。

您可以检查Eclipse中的“Problems”视图并修复编译错误,然后尝试编译您的程序。这个问题的明显错误是在使用驱动程序名称时缺少双引号""

Class.forName("org.sqlite.JDBC");