IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

MySQL et Sérialisation


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Points : 11
    Points
    11
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bon à croire que j'étais pas complètement réveillé.
    J'ai rajouté des guillemets inutiles. La bonne requête étant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

Discussions similaires

  1. [Kylix] Kylix attaque Mysql ?
    Par nahmsath dans le forum EDI
    Réponses: 9
    Dernier message: 12/08/2002, 19h37
  2. [Kylix] [cgi] pb déploiement appli avec connexion MySQL [rés
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 06/08/2002, 20h09
  3. Probleme C++Builder et Mysql
    Par noname dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 13h40
  4. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18
  5. [Kylix] Pb connection à Mysql
    Par Anonymous dans le forum EDI
    Réponses: 3
    Dernier message: 25/04/2002, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo