Obtenir une valeur d'instruction select SQL en Java
Je suis en train de retourner une valeur à partir d'une instruction select. Sa seule valeur, car la valeur que je suis de retour à partir de la colonne de la clé primaire.
L'instruction SQL est SELECT itemNo FROM item WHERE itemName = 'astringvalue';
Ma méthode pour obtenir la valeur ressemble à ceci:
private String viewValue(Connection con, String command) throws SQLException
{
String value = null;
Statement stmt = null;
try
{
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(command);
while (rs.next())
value = rs.toString();
}
catch (SQLException e )
{
e.printStackTrace();
}
finally
{
if (stmt !=
null) { stmt.close(); }
}
return value;
}
J'ai un getConnection()
méthode de trop.
Ici est ce que la messagerie instantanée à l'aide d'appeler le viewValue
méthode:
if((action.getSource() == btnSave) ||(action.getSource() == btnSavePrint) )
{
String findItemNoCommand = "SELECT itemNo FROM `item` WHERE itemName = '" + itemList.getSelectedItem() + "'";
try
{
itemNo = viewValue(conn, findItemNoCommand);
}
catch (SQLException e)
{
e.printStackTrace();
}
System.out.println(itemNo);
}
Le code ci-dessus a été écrit pour un ButtonHandler
Dès maintenant, pour la println
que je suis un "com.mysql.jdbc.JDBC4ResultSet@1e72cae
" .. je ne comprends pas comment il en est ainsi.. mais je pars du principe que le jeu de résultats est le mauvais choix ici.
Ma question est.. ce que je peux utiliser, il peut travailler?
Toute aide ou idée de ce que im faire de mal, c'est très apprécié.
value = rs.getString(1);
Et le changement
while(rs.next())
à if(rs.next())
depuis que vous avez seulement besoin d'une valeur.Vous devez utiliser l'essayer avec des ressources lorsque cela est possible (docs.oracle.com/javase/tutorial/essential/exceptions/...). Cela permettrait d'éliminer le bloc finally à partir de votre code.
OriginalL'auteur Tsar | 2014-11-03
Vous devez vous connecter pour publier un commentaire.
est parce que vous retourner le
ResultSet
objet ici ,value = rs.toString();
De docs,
Vous devriez dire à l'ensemble des résultats à obtenir la valeur de la colonne ,
par le biais de l'indice de
ou par nom de colonne
OriginalL'auteur San Krish
Utilisation
rs.getInt(1)
ours.getString(1)
à récupérer la valeur réelle de laResultSet
. Alors lire un JDBC tutoriel.OriginalL'auteur Kayaman
changer de
et
fonctionne !!!
OriginalL'auteur sonal
Changement :
:
rs.toString renvoie le résultat de la
toString
méthode de l'ObjetResultSet
.rs.getString(1)
vous donne le premier paramètre de la resultset comme unString
.OriginalL'auteur Jens
Vous avez besoin de changer
à
OriginalL'auteur Prabhakaran
Essayez Ceci:
OriginalL'auteur AsSiDe