Précédent   Forum des professionnels en informatique > Java > Général Java > JDBC
JDBC Forum d'entraide sur l'API JDBC (Java Database Connectivity) et l'accès aux bases de données. Avant de poster -> FAQ JDBC
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 28/01/2012, 18h57   #1
Invité de passage
 
Inscription : mars 2009
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 10
Points : 3
Points : 3
Par défaut MySQL et Sérialisation

Bonjour,

Je tente de stocker des objets dans une base MySQL. Ces objets sont tous Serializable. Et plutôt que de long discours je vais vous montrer mon code :
Code :
1
2
3
4
5
sql = "INSERT INTO players ('permission', 'player_id') VALUES (?,?)";
PreparedStatement stat = connection.prepareStatement(sql);
stat.setObject(1, entity);
stat.setString(2, entity.getName());
stat.executeUpdate();
entity étant l'objet que je souhaite sauvegarder.

Voici l'erreur que j'obtiens :
Code :
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Erreur de syntaxe près de ''permission', 'player_id') VALUES (_binary'¬Ã*\0sr\07fr.toobian.bukkit.btcperm' à* la ligne 1
J'ai eu beau chercher sur le net mais je n'ai trouvé que très peu d'infos sur l'utilisation de setObject et de ses contraintes.

Ah oui, j'oubliai voici la structure de la base de données :
Code :
1
2
3
4
5
CREATE TABLE IF NOT EXISTS `players` (
  `player_id` varchar(20) NOT NULL,
  `permission` longblob NOT NULL,
  PRIMARY KEY (`player_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Merci d'avance pour votre aide.
Gaani est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 22h55   #2
Invité de passage
 
Inscription : mars 2009
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 10
Points : 3
Points : 3
Bon à croire que j'étais pas complètement réveillé.
J'ai rajouté des guillemets inutiles. La bonne requête étant :
Code :
sql = "INSERT INTO players (permission, player_id) VALUES (?,?)";
Néanmoins j'ai encore besoin d'aide, quand je souhaite récupérer l'objet, il n'arrive pas à le caster. Il pense que l'objet est du type "[B"

Je suppose que c'est dû à l'encodage des caractères. J'ai mis tout ce que j'ai pu en UTF8 mais ça ne fonctionne toujours pas.

Quelqu'un aurait-il une idée ?
Gaani est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h16.


 
 
 
 
Partenaires

Hébergement Web