Как прочитать данные из базы данных mysql и вставить их в реализованную хэш-таблицу?

#java #mysql #eclipse

#java #mysql #eclipse

Вопрос:

Мне нужно модифицировать мою программу, чтобы она считывала имя пользователя и пароли из базы данных 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);
            }  

        }
  

Ответ №1:

Смотрите здесь.

Эта строка не будет работать:

 accounts.put(rs.getString("username"), 
             rs.getString("password"));
  

Потому что вы не утверждали, что в ResultSet ней есть какие-либо данные.

Т.е. вы должны вызвать rs.next() по крайней мере (чтобы убедиться, что там есть данные), прежде чем вы сможете извлечь данные из текущей строки.