Метод для каждой строки

#java #sql #telegram-bot

#java #sql #telegram-бот

Вопрос:

Выполнение sql-запроса, чтобы получить некоторую информацию из моей базы данных

 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;

}
  

Другой класс, другой метод, возвращает информацию из базы данных в строку, но в моей базе данных нет ни одного значения для моего запроса,

 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();
    }
} 
  

Возникает вопрос.: Метод sendMsg необходимо запустить для нескольких значений Строки chat_id . На данный момент он выполняется для последнего значения из базы данных. какую оболочку я делаю?

Комментарии:

1. Зачем вам нужно отправлять несколько сообщений одному и тому же chatId ? Кажется, вам нужно пообщаться со списком пользователей (а у пользователей может быть несколько чатов), у которых есть список сообщений

Ответ №1:

Вы можете сохранить их в список, а затем соответствующим образом прочитать их в другом классе следующим образом:

  public List<String> chat_id() {
     String userid = null;
     List<String> userids = new ArrayList<>();
     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");
             userids.add(userid);
             System.out.println("userid : "   userid);
         }
     } catch (SQLException e) {
         e.printStackTrace();
     }
     return userids;

 }
  

Вы можете получить значения из списка следующим образом:

 for(int i = 0; i < userids.size; i  ){
    String userid = userids.get(i);
}