我从使用netbeans的基本Java derby DB程序中遇到以下错误。
我尝试下载许多类型的包含jar文件的驱动程序,然后更改Class.forName(_______);
语句以包括没有运气的路径。我读过许多类似的问题,并尝试这些决议都没有运气。
当我转到服务/数据库时,右键单击数据库并单击属性,它显示为
驱动程序类:org.apache.derby.jdbc.ClientDriver。
我可以在org.apache.derby.jdbc.ClientDriver
下找到project/libraries
文件,但只能在我最近通过右键单击app/properties/libraries/OK
而添加的jar下,不确定文件在jdk 1.8中的位置。
任何帮助将不胜感激。
错误:“ SQL错误:java.sql.SQLException:找不到适用于jdbc:derby:// localhost:1527 / sample 0 08001的驱动程序”
package javaapplication10;
import java.sql.*;
public class JavaApplication10 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String data = "jdbc:derby://localhost:1527/sample";
try (
Connection conn = DriverManager.getConnection(
data, "app", "APP");
Statement st = conn.createStatement()) {
Class.forName("org.apache.derby.jdbc.ClientDriver");
ResultSet rec = st.executeQuery(
"select CUSTOMER_ID, NAME, CITY, STATE " +
"from APP.CUSTOMER " +
"order by CUSTOMER_ID");
while (rec.next()) {
System.out.println("CUSTOMER_ID:\t"
+ rec.getString(1));
System.out.println("NAME:\t" + rec.getString(2));
System.out.println("CITY:\t" + rec.getString(3));
System.out.println("STATE:\t" + rec.getString(4));
System.out.println();
}
st.close();
} catch (SQLException s) {
System.out.println("SQL Error: " + s.toString() + " "
+ s.getErrorCode() + " " + s.getSQLState());
} catch (Exception e) {
System.out.println("Error: " + e.toString()
+ e.getMessage());
}
}
}
答案 0 :(得分:0)
您需要将Class.forName("org.apache.derby.jdbc.ClientDriver");
行移到try块之外(在try时钟之前)。您可以使main方法声明throws ClassNotFoundException
以便程序进行编译。这样,驱动程序将可用于try
中的DriverManager来查找和使用。
此外,由于您正在try定义内创建Statement,因此st.close();
之前的最后一行catch
是多余的,因此您可以安全地删除它。