问题描述
我100%确定连接名称正确,“ smartdatabase”是该代码所在的包,“ SmartData”是我在NetBeans IDE 8.2中的嵌入式数据库(我相信它是Derby数据库)。
package smartdatabase;
import java.sql.*;
import org.apache.derby.jdbc.EmbeddedDriver;
public class Connection {
private Connection conn = null;
private Statement stmt = null;
public Connection() {
}
public void getStudents() {
try {
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
conn = (Connection)
DriverManager.getConnection("jdbc:derby://localhost:1527/SmartData;create=true;","root","The
password");
` `String sql;
sql = "SELECT Firstname,Surname FROM tblStudents";
ResultS``et rs = stmt.executeQuery(sql);
while (rs.next()) {
String Firstname = rs.getString("FirstName");
String Surname = rs.getString("Surname");
System.out.println(Firstname + " " + Surname);
}
} catch (sqlException se) {
se.printstacktrace();
} catch (`Exception e) {
e.printstacktrace();
}
}
}
解决方法
您的Connection
包中可能有一个名为smartdatabase
的类。
使用此类而不是java.sql.Connection
默认情况下,编译器从同一程序包解析Connection
。
尝试重命名该类或使用完全限定的名称(java.sql.Connection
)而不是仅使用Connection:
private java.sql.Connection conn = null;