找不到适用于jdbc.sqlite的驱动程序,更复杂
我正在编写一个程序,使用java和SQLite连接到数据库。我尝试过任何我遇到过的东西,但似乎没有任何帮助。 的代码看起来是这样的:找不到适用于jdbc.sqlite的驱动程序,更复杂
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.sqlite.JDBC;
/**
*
* @author sqlitetutorial.net
*/
@SuppressWarnings("unused")
public class SQLiteJDBCDriverConnection {
/**
* Connect to a sample database
*/
public static void connect() {
Connection conn = null;
try {
// db parameters
String url = "jdbc:sqlite:C:\\Users\\marks\\Desktop\\sqlite-tools-win32-x86-3180000\\SQLiteStudio\\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) {
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
connect();
}
}
而且我得到的错误是:
org.sqlite.JDBC
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at SQLiteJDBCDriverConnection.main(SQLiteJDBCDriverConnection.java:42)
我遵循了http://www.sqlitetutorial.net/sqlite-java/sqlite-jdbc-driver/的具体步骤,它并没有为我工作!
我在Widows 10 64位上使用Eclipse Java Neon(最新版本)。
EDITED
由于您的教程节目,你只需要调用主空connect()
方法。
public static void main(String[] args) {
connect();
}
您正在尝试检索类Class.forName("org.sqlite.JDBC");
,并且您稍后未使用它。
他在主要方法中调用'connect()',我不知道这是如何解决问题的。问题中没有任何内容表明涉及到tomcat。把东西放在'%JAVA_HOME%/ lib'中是**不是**你应该如何处理Java的类路径问题。 –
你是对的,我编辑答案,无论如何他试图搜索'org.sqlite.JDBC'类后调用连接。我确实认为他不需要检索这个类,它只是在那里失败。它在调用连接方法前崩溃 – maarkeez
您的编辑使情况变得更糟,前缀为“jdbc:sqlite:'的连接字符串使用驱动程序”org.sqlite.JDBC“。虽然不再需要使用'Class.forName'来加载JDBC 4(或更高版本)的驱动程序,但这样做抛出ClassNotFoundException意味着此驱动程序不在类路径中。换句话说,你根本没有解决这个问题。 –
您需要构建路径中的JDBC驱动程序。 –
你如何运行你的应用程序。该错误表明您在运行时没有类路径上的SQLite JDBC驱动程序。 –
该错误不完整,发布完整的堆栈跟踪。此外,为什么你继续连接,如果没有找到SQLite驱动程序类? – m0skit0