Qu'est-ce que l'équivalent de java.sql.Types pour le texte MySQL?
Lors de l'utilisation de PreparedStatement
's setObject
méthode pour une colonne de type TEXTE (dans une base MySQL), quel doit être le dernier paramètre?
Par exemple, je sais que c'est ok pour une colonne de type VARCHAR:
stmt.setObject(i, "bla", Types.VARCHAR);
où stmt
est un PreparedStatement
et Types
est java.sql.Types
.
Mais si la DB de la colonne est de type TEXTE, dois-je toujours utiliser VARCHAR? ou peut-être BLOB ou CLOB?
source d'informationauteur Eran Zimmerman
Vous devez vous connecter pour publier un commentaire.
La réponse (OUI, vous êtes censé utiliser VARCHAR) peut être trouvé ici:
http://dev.mysql.com/doc/connector-j/en/connector-j-reference-type-conversions.html (mise à jour obsolètes lien brisé)
et voici quelques informations sur le MYSQL
TEXT
typehttp://dev.mysql.com/doc/refman/5.0/en/blob.html
Pourquoi vous n'utilisez pas
pour le type de texte ?
http://download.oracle.com/javase/1.4.2/docs/api/java/sql/PreparedStatement.html#setString(intjava.lang.String)
Il n'y a pas de champ de TEXTE ici Oracle Doc pour les Types sqlmais elle peut apparaître dans le futur (maintenant, vous pouvez utiliser les informations de cette taille est 21845 comme une application codé en dur astuce - si vous avez besoin de savoir plus tard que c'est champ de TEXTE - la taille de champ réel est quelque chose que vous choisissez et le reste du texte est mémorisé par ailleurs MySql)
Donc la première réponse à "utiliser le type VARCHAR" (probablement à la bibliothèque faire un setString appel)
La réponse "setString" est aussi de travail (précédé par un interrupteur( type_champ) si vous voulez prendre les décisions par vous-même - je utiliser cette option afin de déboguer le code plus facile - la vitesse est la même que le coût = interrupteur + setString dans les deux cas)
Merci à vous tous pour les liens et les confirmations de !