J'utilise jdbc pour travailler avec mon db. Je veux stocker un HashMap directement dans le db, oracle. je figure que j'ai besoin de sérialiser la carte, et son contenu, qui ne sont que des chaînes. Map implémente déjà Serializeable, mais ma question est comment puis-je mettre la carte dans le SQL en utilisant jdbc? par exemple, j'ai un jdbcTemplate.update ("insert into ....", nouvel Object [] {....}, new int [] {....}) puis-je mettre la carte dans le tableau Object? MerciSérialiser une carte Java à un db
Répondre
Vous avez besoin d'une table avec des colonnes clé/valeur, et si vous stockez plusieurs cartes, une colonne d'identité (ou une clé étrangère à une autre table contenant des données dont le hashmap est membre).
Ensuite, dans JDBC, créez une instruction préparée (insérez dans les valeurs myhashmap (id, foreign_id, key, val) (?,?,?,?)) UNE FOIS, puis faites une boucle sur chaque élément de la table de hachage. paramètres sur l'instruction et l'appel s'exécutent sur la requête. (Désolé, pas près de tout code pour afficher des extraits de code et ne pas saisir d'exemples buggés).
Ceci est également extensible de manière triviale aux cartes de String -> Object, où vous souhaitez stocker chaque champ dans Object dans la base de données. C'est-à-dire, c'est fondamentalement comme une table standard dans une base de données, et une colonne «clé». Les listes sont similaires, mais avec une colonne «rank» pour indiquer la commande.
La façon dont je l'ai fait dans le passé est de créer une colonne dans une table pour stocker vos objets sérialisés. Le type de données doit être "blob" ou équivalent dans Oracle.
Il peut alors être écrit/récupéré à l'aide ResultSet.setBytes() et() ResultSet.getBytes
- 1. Java définissant les valeurs d'une carte à un ensemble
- 2. Java échanger deux clés dans une carte
- 3. Une carte bidirectionnelle à clojure?
- 4. Sérialiser l'objet à XmlDocument
- 5. Comment sérialiser à dateTime
- 6. Comment ajouter le contenu d'une carte à une autre carte?
- 7. décision de programmation Java ou .Net, db ou pas db
- 8. Mise à jour d'une entrée de carte Java
- 9. Comment créer une carte d'image en utilisant Java Swing?
- 10. Meilleure façon de créer une carte vide en Java
- 11. Vérification du contenu d'une carte dans une autre carte dans java
- 12. Obtenir un pointeur à la structure dans une carte C++
- 13. String Java à partir de Carte XY Coordonnées
- 14. Collection Java/carte méthode d'application équivalente?
- 15. Mettez un bouton sur une carte google
- 16. Demande de carte à puce
- 17. Comment (xml) sérialiser un uri
- 18. Comment sérialiser un message électronique?
- 19. Comment XML sérialiser un 'Type'
- 20. Comment puis-je sérialiser une classe avec un attribut
- 21. Impossible de sérialiser une propriété sur un contrôle
- 22. Implémentation MIDP Java de SQLite DB
- 23. Comment construire une carte en mosaïque en Java pour un jeu en 2D?
- 24. L'authentification DB de Crystal Report dans Java
- 25. Puis-je sérialiser la carte de STL dans MFC en utilisant CArchive?
- 26. sérialiser et désérialiser une requête SQL
- 27. Comment sérialiser?
- 28. Accès à une carte dans une liste Clojure
- 29. Comment mieux sérialiser une image java.awt.Image?
- 30. Structure de données similaire à une carte à 2 arguments
Il s'agit d'une approche bien meilleure que l'approche BLOB car vous pourrez lire et travailler avec les données de la base de données et pas seulement dans une application Java. Et entre Java, les versionsID des librairies java sont modifiées, de sorte que votre sérialisation peut ne pas fonctionner avec les versions plus récentes ou plus anciennes de Java. – hromanko