2015-09-09 3 views
0

У меня есть query = "select * from user_message where username = '[email protected]';". Существует столбец «is_read» (когда сообщение отправлено пользователю, is_read по умолчанию ложно, это означает, что пользователь еще не прочитал сообщение), после первого выбора мне нужно изменить этот столбец на true UPDATE user_message SET is_read=true where username = '[email protected]'; Это означает, что пользователь прочитал сообщение. так что вопрос в том, могу ли я сделать один запрос и выполнить его через пакет или мне нужно сделать два разных запроса? Какой путь лучше?готовый пакет для вставки и обновления?

+0

Вы можете перебирать значения, которые вы хотите обновить, используя один подготовленный элемент, каждый раз задавая параметры. – Blip

ответ

0

Вы пишете один метод с двумя параметрами username и is_read. Вы можете вызвать этот метод в любое время, когда вам нужно.

0

Я думаю, что ваше заявление обновления неверно, так как он не проходит идентификатор сообщения

Я предполагаю, что это что-то вроде:

UPDATE user_message 
SET is_read=true 
where username = '[email protected]' 
and user_message_id = 123 

Если вы хотите установить несколько сообщений read вы можете сделать это через:

UPDATE user_message 
SET is_read=true 
where username = '[email protected]' 
and user_message_id in (123, 234, 456) 

Это чувствует себя как дефект дизайна для меня. Почему в таблице user_message есть письмо? Что произойдет, если пользователь изменит свой адрес электронной почты? Вы действительно должны отделять электронную почту от пользователя, предоставляя каждому пользователю уникальный (целочисленный) идентификатор, который вы используете в качестве внешнего ключа.

0

Исходя из предположения у вас есть Collection параметров сказать emails, я хотел бы предложить следующее:

String sql = "Your statement"; 
PreparedStatement stmt = conection.prepare(sql); 
for(String email : emails){ 
    stmt.setString(1, email); 
    stmt.executeUpdate(); 
    stmt.clearParameters(); 
} 

Это я думаю, что поможет.

Смежные вопросы