Выполнить метод для всех String
При помощи запроса в БД, получаю значение
public String chat_id() {
String userid = null;
try {
PreparedStatement st = null;
String query = "select chat_id FROM id";
st = con.prepareStatement(query);
rs = st.executeQuery();
while (rs.next()) {
userid = rs.getString("chat_id");
System.out.println("userid : " + userid);
}
} catch (SQLException e) {
e.printStackTrace();
}
return userid ;
}
в другом классе, в другом методе вывожу это в значение в String chat;
public void sendMsg(){
Login lgc= new Login();
String chat = lgc.chat_id();
String text = "test";
SendMessage sendMessage = new SendMessage();
sendMessage.enableMarkdown(true);
sendMessage.setChatId(chat);
//sendMessage.setReplyToMessageId(message.getMessageId());
sendMessage.setText(text);
try {
execute(sendMessage);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
Вот в чем вопрос, т.к. в базе данных, есть несколько chat_id то мне нужно, что бы метод sendMsg выполнялся для каждого из них. в данный момент, он выполняется для последнего значения. Как можно заставить его выполняться несколько раз?
Ответы (2 шт):
При помощи, вы получите только последнее поле
String query = "SELECT chat_id FROM id";
Поэтому посмотрите как работает MySQL оператор LIKE
Метод chat_id возвращает вам стрингу с последним из результатов полученных из таблицы. Перепишите его так что бы он возвращал вам например лист ваших результатов полученных в этом методе. А уже в методе стенд месежд проитерируйтесь по листу и распечатайте все результаты.