我从使用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());
}
}
}
您需要将Class.forName("org.apache.derby.jdbc.ClientDriver");
行移到try块之外(在try时钟之前)。您可以让main方法声明throws ClassNotFoundException
以便程序进行编译。这样,驱动程序将可用于try
中的DriverManager来查找和使用。
此外,由于要在try定义内创建Statement,因此st.close();
之前的最后一行catch
是多余的,因此可以安全地删除它。