我正在使用jdbc與我的db一起工作。 我想直接在db,oracle中存儲一個HashMap。 我想我需要序列化的地圖,及其內容,這只是字符串。 Map已經實現了Serializeable,但我的問題是我如何使用jdbc將Map放入SQL中? 例如,我有一個jdbcTemplate.update(「insert into ....」,new Object [] {....},new int [] {....}) 我只是把地圖放入對象數組? 謝謝將java映射序列化爲db
0
A
回答
2
您需要使用鍵/值列的表,如果你存儲多個地圖,標識列檢索(或者一個外鍵保存到另一個保存hashmap所屬數據的表)。
然後在JDBC中,創建一個準備語句(insert into myhashmap(id,foreign_id,key,val)values(?,?,?,?))ONCE,然後遍歷hashmap中的每個元素,設置在語句上調用參數並在查詢上調用執行。
(對不起,沒有附近的任何代碼發佈代碼片段,不想輸入錯誤的例子)。
這也可以簡單地擴展到String - > Object的映射,您希望在DB中存儲Object中的每個字段。也就是說,它基本上就像數據庫中的一個標準表,還有一個「關鍵」列。列表類似,但具有「排列」列以指示排序。
0
我過去的做法是在表中創建一列來存儲序列化對象。 Oracle中的數據類型應該是「blob」或等效的。
它可以寫/使用ResultSet.setBytes()和ResultSet.getBytes()
相關問題
- 1. 將鍵映射爲字符串的序列化和反序列化映射
- 2. 在db中將列映射爲IDENTITY
- 3. Java序列化映射到文件
- 4. Java序列化:readFields/putFields與序列化映射
- 5. @ManyToOne hibernate映射序列化
- 6. 將Guava的ArrayListMultimap轉換爲可序列化映射
- 7. 如何使用boost將(嵌套)映射序列化爲變量?
- 8. 將輸入映射序列化爲字符串
- 9. 如何在休眠中將字符串映射到DB序列
- 10. 是否有可能將JSON序列化/反序列化爲具有額外字段進入映射的Java DTO?
- 11. Avro和java:反序列化的字符串映射不「等於」原始映射
- 12. 映射DB數據列表的列表
- 13. 將java序列化爲c#
- 14. 使用每個映射中的鍵的值將映射序列轉換爲映射映射
- 15. 原始Java Map的對象散列映射(將POJO映射到映射中)
- 16. 序列化/映射問題Dropwizard/Jersey
- 17. 如何反序列化映射對象
- 18. Jerkson。序列化映射到JsValue
- 19. boost :: serialization僅序列化映射的鍵
- 20. .NET核心 - Json.NET反序列化映射
- 21. 使用@JsonProperty序列化映射
- 22. 反序列化映射傑克遜
- 23. Hazelcast映射值序列化異常
- 24. 映射和序列化雙向關聯
- 25. 如何序列化/反序列化映射
- 26. 使用Gson自定義序列化序列化枚舉映射
- 27. 將映射列表轉換爲使用帶有Java 8流的ImmutablePair的映射
- 28. Rails將excel文件的列映射到db列
- 29. 如何使用java中的整數鍵反序列化映射
- 30. 傑克遜反序列化映射到Java泛型
這是一種比BLOB方法好得多的方法,因爲您將能夠讀取和處理數據庫中的數據,而不僅僅是在Java應用程序中。在Java發行版之間,Java庫的版本ID會發生變化,所以您的序列化可能不適用於較新版本或舊版本的Java。 – hromanko 2008-12-15 23:09:59