我有query = "select * from user_message where username = '[email protected]';"
。有一列'is_read'(當消息發送給用戶,is_read默認爲false,這意味着用戶還沒有閱讀消息),第一次選擇後,我必須將該列更改爲真UPDATE user_message SET is_read=true where username = '[email protected]';
這意味着用戶已閱讀消息。所以問題是我可以做一個查詢,並通過批處理執行它,或者我應該做兩個不同的查詢?哪種方法更好?preparedstatement批次插入和更新?
0
A
回答
0
您正在編寫一個帶有兩個參數username和is_read的方法。你可以在需要時隨時調用這個方法。
0
我覺得你的更新語句不正確,因爲它沒有通過的消息ID
我猜它是這樣的:
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表有電子郵件?如果用戶更改電子郵件會發生什麼情況?你應該通過給每個用戶一個唯一的(整數)ID作爲外鍵來解耦來自用戶的電子郵件。
0
基於這樣的假設在你的參數Collection
說emails
,我建議如下:
String sql = "Your statement";
PreparedStatement stmt = conection.prepare(sql);
for(String email : emails){
stmt.setString(1, email);
stmt.executeUpdate();
stmt.clearParameters();
}
這個我想會幫助你。
相關問題
- 1. Java PreparedStatement多個批量插入外鍵
- 2. JDBC批次的PreparedStatement在MySQL
- 3. 批量插入和更新MySQL
- 4. 休眠批量插入,批量更新
- 5. JPA批量更新似乎是插入每批更新
- 6. 使用燈泡和rexster批量/批量更新/插入?
- 7. JDBC PreparedStatement,批量更新和生成的密鑰
- 8. 更新批次codeigniter
- 9. Ado更新批次
- 10. SqlAlchemy中的有效批次「更新或插入」
- 11. 針對SQL Server的最佳插入/更新批次
- 12. 插入和更新
- 13. 插入和更新
- 14. 按批次插入數據?
- 15. 批量插入或更新與休眠?
- 16. SQL Server 2005批量更新或插入
- 17. 在Sql Azure上批量插入更新
- 18. 在MongoDB中批量更新/插入?
- 19. Hibernate批量插入/更新constraintviolationexception
- 20. Visual Studio C#Linq批量插入/更新
- 21. 進行批量插入/更新用
- 22. 用EF6批量插入/更新?
- 23. 批量插入與重複鍵更新
- 24. 在一批中插入並更新
- 25. 批量插入/更新PDO MySQL查詢
- 26. MyBatis批量插入/更新Oracle
- 27. Slick 3.0批量插入或更新(upsert)
- 28. 如何批量更新/插入mongoid/mongodb?
- 29. NHibernate批量插入或更新
- 30. 使用PreparedStatement插入數據的JdbcTemplate更新的異常
通過每次只設置參數,您可以循環使用單個preparedStatement更新的值。 – Blip