SQLite上的Java JDBC [重复]

问题描述 投票:0回答:1

我正在使用Java JDBC连接到Mac上的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

Blow是本教程提供的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个回答
0
投票

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

NB:旁注,但是,sqlite非常适合Java。像h2这样的词更有意义。 SQLite几乎没有任何好处:如果您希望SQLite引擎轻巧,您仍然需要交付一个SQLite引擎并从该过程中启动它,或者您需要明确要求用户安装该东西,这时您还可能会问他们安装像postgres这样的功能齐全的数据库。 H2正在开发中,不需要您为要支持的每种操作系统/体系结构组合都交付一个可执行文件,也不需要弄乱要使主机操作系统启动本机应用程序的麻烦。它“有效”。仅在有特定需求且仅需其他操作(例如,您使用的是可为您提供sqlite的android系统上,或者您正在尝试检查或更改firefox数据存储)时,才应使用sqlite。是sqlite数据库)。

© www.soinside.com 2019 - 2024. All rights reserved.