我正在使用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. 將java序列化爲c#
- 6. 使用每個映射中的鍵的值將映射序列轉換爲映射映射
- 7. 原始Java Map的對象散列映射(將POJO映射到映射中)
- 8. .NET核心 - Json.NET反序列化映射
- 9. 使用Gson自定義序列化序列化枚舉映射
- 10. 將映射列表轉換爲使用帶有Java 8流的ImmutablePair的映射
- 11. Rails將excel文件的列映射到db列
- 12. 傑克遜反序列化映射到Java泛型
- 13. 如何使用java中的整數鍵反序列化映射
- 14. 將db varchar映射到域對象bool
- 15. 將DB值映射到枚舉
- 16. 如何將JSON數組映射/反序列化爲POJO或POJO列表?
- 17. 將java中的映射迭代爲jsp
- 18. 可以將映射映射爲0嗎?
- 19. 將映射列表轉換爲映射到原始數組
- 20. 通過流將映射列表轉換爲單個映射
- 21. 在反序列化JSON後將NSDictionary映射到域對象
- 22. 在Java代碼中將Java映射轉換爲Scala不可變映射
- 23. Java將ArrayList映射到HashMap
- 24. 休眠映射時間戳爲可序列化
- 25. 爲F#中的映射異步序列優化語法
- 26. 帶DB觸發器生成ID的Hibernate映射+序列號
- 27. 如何將db列映射到NHibernate xml文件?
- 28. 將數值列表映射爲顏色
- 29. java hibernate - 我如何將date列映射爲datetime?
- 30. Jackson對象映射器將空字符串反序列化爲「null」值
這是一種比BLOB方法好得多的方法,因爲您將能夠讀取和處理數據庫中的數據,而不僅僅是在Java應用程序中。在Java發行版之間,Java庫的版本ID會發生變化,所以您的序列化可能不適用於較新版本或舊版本的Java。 – hromanko 2008-12-15 23:09:59