rs.next (); просто скажите, есть ли в вашем наборе результатов данные или нет, то есть истина или ложь, чтобы использовать или создать массив фактических данных, вы должны выполнить итерацию по вашему результирующему набору, создать из него объект пользователя и добавить этот объект в вашем списке пользователей
Также измените подпись
static List<User> getData(String sql)
И лучше всего использовать как Select Username,UserId from Users; as your sql
как то так:
try { List<User> userList = new ArrayLisy();
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
//until there are results in the resultset loop over it
while (rs.next()) {
User user = new User();
user.SetName(rs.getString("username"));
// so on.. for other fields like userID ,age , gender ,loginDate,isActive etc ..
userList.add(user);
}
}
если вы не знаете, какие столбцы таблицы вы собираетесь получить, то вы можете найти то же самое, используя:
Теперь вы знаете всю информацию, и с ее помощью вы можете построить правильный запрос.
и работать с этим
DatabaseMetaData metadata = connection.getMetaData();
ResultSet resultSet = metadata.getColumns(null, null, "users", null);
while (resultSet.next()) {
String name = resultSet.getString("COLUMN_NAME");
String type = resultSet.getString("TYPE_NAME");
int size = resultSet.getInt("COLUMN_SIZE");
System.out.println("Column name: [" + name + "]; type: [" + type + "]; size: [" + size + "]");
}
}