我正在使用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
尽管,我仍然遵循本教程提供的故障排除方法。我无法解决。请帮我。非常感谢。
类路径分隔符是冒号(“:”),而不是分号。这只是Windows上的分号,这可能就是本教程使用它的原因。因此,只需将classpath参数更新为:-cp .:sqlite-jdbc-3.27.2.1jar
:)
NB:旁注,但是,sqlite非常适合Java。像h2这样的词更有意义。 SQLite几乎没有任何好处:如果您希望SQLite引擎轻巧,您仍然需要交付一个SQLite引擎并从该过程中启动它,或者您需要明确要求用户安装该东西,这时您还可能会问他们安装像postgres这样的功能齐全的数据库。 H2正在开发中,不需要您为要支持的每种操作系统/体系结构组合都交付一个可执行文件,也不需要弄乱要使主机操作系统启动本机应用程序的麻烦。它“有效”。仅在有特定需求且仅需其他操作(例如,您使用的是可为您提供sqlite的android系统上,或者您正在尝试检查或更改firefox数据存储)时,才应使用sqlite。是sqlite数据库)。