希望有人可以帮忙。我正在尝试从Eclipse中的动态Web项目访问数据库。由于某些原因,我继续收到以下错误:
[SQLITE_ERROR] SQL错误或缺少数据库(无此表:用户)
图书数据库中肯定有一个名为“用户”的表。我认为这可能与保存数据库的位置有关,因为我知道使用的代码可以正常工作,因为我在项目的另一部分使用了它。下面的屏幕快照显示了保存内容的位置。我的数据库在主目录和web inf目录中,因为我的主程序需要访问它以及服务器。
我的代码:
public class Authentication {
private static Connection getDBConnection() {
Connection conn = null;
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
try {
String url = "jdbc:sqlite:books.sqlite";
//Gets connection with the JDBC API
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
public String authenticate(String username, String password) throws SQLException {
// TODO maybe removed this line below or change it.
Statement statement = null;
Connection conn = null;
ResultSet results = null;
HashMap<String,String> userPass = new HashMap<String,String>();
// Creates SQL query and adds it to String variable.
String query = "SELECT username, password FROM users";
// TODO Maybe remove the below line, not necessary?
// Book temp = null;
try {
conn = getDBConnection();
statement = conn.createStatement();
results = statement.executeQuery(query);
while (results.next()) {
String Username = results.getString("username");
String Password = results.getString("password");
userPass.put(Username, Password);
}
} finally {
if (results != null)
results.close();
if (statement != null)
statement.close();
if (conn != null)
conn.close();
}
//Returns to newly created bookList to where the method was called.
if (userPass.get(username)== password ) {
return "success";
}
else {
return "error";
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。