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 viewValuemé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é.

Vous avez besoin 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