Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/07/2006, 11h12   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 4
Points : 1
Points : 1
Par défaut Insertion d'un objet dans MySQL ?

Bonjour,

Je voulais savoir si il est possible de mettre un objet dans une base de données. Par objet, j'entend par exemple un classe JAVA. Ceci m'éviterai de devoir transformer mon objet en chaîne de caractère pour le mettre dans la base de données et de devoir le retransformer en le récupérant.

Merci d'avance.
AsmodeeFS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 11h58   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Salut,

Je pense que tu peux faire ça avec des frameworks de persistance objet comme Hibernate.

Sur le forum Java tu aurais peut-être plus de réponses...
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 12h02   #3
Invité de passage
 
Inscription : juillet 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 4
Points : 1
Points : 1
Merci pour ta réponse
AsmodeeFS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 13h03   #4
Membre éclairé
 
Avatar de DBProg
 
Étudiant
Inscription : juillet 2006
Messages : 242
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2006
Messages : 242
Points : 315
Points : 315
Salut !

Tu peux sûrement le faire en utilisant le type BLOB pour la colonne.
Il faut ta classe soit Serializeable aussi, mais ça je pense que tu dois déjà le savoir.
__________________
La vitesse de la lumière étant supérieure à la vitesse du son, certaines personnes brillent encore tant qu'elles n'ont pas parlé
-----------------------------------------------------------
Retrouvez mes articles informatique sur mon Site Developpez.
Le reste, sur le Site perso !

DBProg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 13h17   #5
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Sinon il y a JDO, dans le genre rendre des objets java persistants avec une BDD. Après si c'est pour un seul objet, sérialiser est peut-être suffisant.
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 16h08   #6
Invité de passage
 
Inscription : juillet 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 4
Points : 1
Points : 1
Merci pour ce complément d'information, je vais essayer tout de suite.
AsmodeeFS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 16h53   #7
Invité de passage
 
Inscription : juillet 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 4
Points : 1
Points : 1
Me revoila,
J'arrive à mettre mon objet avec :
int retour=requete.executeUpdate("INSERT INTO essai VALUES("+envoi.hashCode()+")");

Mais quand je le récupére avec ça :
try{
ResultSet resultat = requete.executeQuery("SELECT * FROM essai");
if (resultat.first()){
do{
Object objet = resultat.getObject("objet");
System.out.println(objet.getClass().getName());
if (objet instanceof ObjetDB){
ObjetDB objetDB = (ObjetDB) objet;
System.out.println("nom : "+ objetDB.getNom());
System.out.println("prénom : "+ objetDB.getPrenom());
System.out.println("telephone : "+ objetDB.getTelephone()+"\n");
}
}while(resultat.next());
}
}catch(SQLException SQLE){
System.out.println("Cause : "+SQLE.getMessage());
System.exit(0);
}

J'ai bien mis nom objet en Serializable, mais lorsque je regarde le nom de la classe c'est incompréhensible.
Alors où est-ce que j'ai échoué.
Merci.
AsmodeeFS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 19h50   #8
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Désolé de te le dire, mais là c'est franchement un problème Java et non MySQL. Tu devrais suivre le conseil de Maximilian pour augmenter tes chances de réponse.

Ceci dit, si tu n'insères que le hashCode de l'objet, je doute que tu vas être capable de reconstruire l'objet après !
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 09h55   #9
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
http://perso.orange.fr/jm.doudoux/ja...al/chap020.htm

Il faut regarder du coté de "ObjectOutputStream" et "writeObject". Si le lien ne suffit pas, il faudra vraiment continuer la discussion dans le forum java.
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2006, 22h24   #10
Membre Expert
 
Avatar de TheLeadingEdge
 
Inscription : mai 2005
Messages : 1 200
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 1 200
Points : 1 260
Points : 1 260
Bonjour,

La classe doit implémenter Serializable :
Code :
public class lobjet implements Serializable
Pour ''sérialiser'' :
Code :
1
2
3
4
Connection c;
PreparedStatement ps = c.prepareStatement ("INSERT INTO latable (value) VALUES (?, ?)"); 
ps.setObject (1, lobject); 
ps.execute ();
Pour ''désérialiser''
Code :
1
2
3
InputStream IS = rs.getBinaryStream  ("value");
ObjectInputStream ois = new ObjectInputStream (IS);
lobject = ois.readObject ();
Ca devrait marcher.

Mais si te me permets, quel est l'intérêt de gérer la persistance de tes données comme ça? Tu ne pourras pas utiliser le SQL pour accéder à tes données! Tu devras les gérer uniquement au travers de ton appli.!
TheLeadingEdge est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h09.


 
 
 
 
Partenaires

Hébergement Web