我需要修改程序以从mysql数据库读取用户名和密码,并将其插入到哈希表中,但是我无法将其插入到哈希表中。我在做什么错了?
private static final Map<String, String> accounts = new Hashtable<>();
public static void main(String args[]){
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydb","root","");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from account");
accounts.put(rs.getString("username"),
rs.getString("password"));
while(rs.next())
System.out.println(rs.getString("username") + " " +
rs.getString("password"));
con.close();
}
catch(Exception e){
System.out.println(e);
}
}
答案 0 :(得分:0)
请参见here。
此行不起作用:
accounts.put(rs.getString("username"),
rs.getString("password"));
因为您没有断言ResultSet
中有任何数据。
即您必须至少调用rs.next()(以确保其中存在数据),然后才能从 current 行提取数据。