【问题标题】:Java JDBC on SQLite [duplicate]SQLite 上的 Java JDBC [重复]
【发布时间】:2019-11-26 12:43:56
【问题描述】:

我在我的 Mac 上使用 java JDBC 连接到 SQLite。官方教程使用的是windows。但是我使用的是 Mac。 下面是我在终端中运行的命令 connect 文件夹。这是教程中提供的命令。 https://www.sqlitetutorial.net/sqlite-java/sqlite-jdbc-driver/

java -classpath ".;sqlite-jdbc-3.27.2.1.jar" net.sqlitetutorial.Connect

下面是我的文件层次结构。

╭─  ~/sqlite ········································at 17:27:22
╰─ tree
.
├── db
│   └── chinook.db
└── java
    └── connect
        ├── net
        │   └── sqlitetutorial
        │       ├── Connect.class
        │       └── Connect.java
        └── sqlite-jdbc-3.27.2.1.jar

5 directories, 4 files

吹的是教程提供的Connect.java,我只在电脑里把String url =改成自己的路径。

package net.sqlitetutorial;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 *
 * @author sqlitetutorial.net
 */
public class Connect {
     /**
     * Connect to a sample database
     */
    public static void connect() {
        Connection conn = null;
        try {
            // db parameters
            String url = "jdbc:sqlite:/Users/anasiangangster/sqlite/db/chinook.db";
            // create a connection to the database
            conn = DriverManager.getConnection(url);

            System.out.println("Connection to SQLite has been established.");

        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        connect();
    }
}

教程原文

String url = "jdbc:sqlite:C:/sqlite/db/chinook.db";

无论如何,当我在connect 文件夹中运行命令(我在前面提供)时。 我收到此错误消息。

Error: Could not find or load main class net.sqlitetutorial.Connect

尽管如此,我还是按照教程提供的故障排除方法进行操作。我无法解决它。 如果可以,请帮助我。非常感谢。

【问题讨论】:

标签: java macos sqlite jdbc


【解决方案1】:

类路径分隔符是冒号(“:”),而不是分号。它只是 Windows 上的分号,这可能是本教程使用它的原因。因此,只需将类路径参数更新为:-cp .:sqlite-jdbc-3.27.2.1jar :)

注意:旁注,但是,sqlite 很奇怪地适合 java。像h2 这样的东西更有意义。 SQLite 几乎没有任何好处:如果您希望它感觉轻量级,您仍然需要发布一个 SQLite 引擎并从流程中启动它,或者您需要明确要求用户安装该东西,此时您不妨问他们安装一个功能齐全的数据库,如 postgres。 H2 是在进程中,不需要您为您打算支持的每个操作系统/架构组合提供一个可执行文件,并且不需要尝试让主机操作系统启动本机应用程序。它“有效”。仅当您对精确的 sqlite 有特定需求并且没有其他操作时才应该使用 sqlite(例如,您在为您提供 sqlite 的 android 上,或者您正在尝试检查或更改 firefox 数据存储,其中是 sqlite 数据库)。

【讨论】:

  • 天啊,我真的在这里呆了一周!非常感谢先生。我正在用我的学校项目来做这个。我们小组中没有一个人非常熟悉 android 编程,所以我们决定在我们的后端服务器上使用 python 中的 Flask。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-06
  • 2019-07-25
  • 2015-07-17
  • 2017-05-07
  • 2018-09-10
  • 2015-12-14
  • 1970-01-01
相关资源
最近更新 更多