Variablen Array ertellen bei model.put

janS

Mitglied
Hallo zusammen,
ich hätte da mal eine Frage. Ich habe vor eine Datenbank tabelle auszulesen und diese dann in ein Array zu speichern um draufzu zugreifen. Mein Chef(Bin im praktikum) hat mir folgendes vorgelegt:

Java:
@RequestMapping("/")
public String welcome(Map<String, Object> model) {
    model.put("message", this.message);
    try {
    Connection con = jdbcTemplate.getDataSource().getConnection();

        PreparedStatement stm =con.prepareStatement("select hp_pk from hft_prozess where hp_menu ='1'");
        ResultSet resultSet = stm.executeQuery();
        while (resultSet.next())
        {
            model.put("menuid", (resultSet.getInt(1)));
        }

    } catch (SQLException e) {
        e.printStackTrace();
    }
--------------------------------------------------------------------------------------------------------------
Also meine Frage wie kann ich die menuid als Array abspeichern?
Danke schonmal im vorraus.
Mfg Jan
 
Zuletzt bearbeitet von einem Moderator:
Moin and welcome 🙂

Nutze bitte die Code-Tags, dann wird Dein Code leserlicher!

Also meine Frage wie kann ich die menuid als Array abspeichern?
Ich verstehe Deine Frage nicht so ganz!
ALS Array kannst Du sie sicher nicht speichern, allenfalls IN einem Array!
Du hast aber ohne kein Array, sondern eine Map !!

model.put("menuid", (resultSet.getInt(1)));
Das sollte doch eigentlich funktionieren, oder bekommst Du Fehler?
Wenn ja, poste diesem Fehler (am besten mit dem kompletten Stacktrace) und auch den relevanten Code dazu!

Hier mal zwei zum Thema "resultset":
http://openbook.rheinwerk-verlag.de...24_006.htm#mj37eccda88499af8132476a4f3e1a86d3
http://www.straub.as/java/jdbc/resultset.html

VG Klaus
 
Nein so funktioniert es auch Ich bekomme aber immer nur den letzten Datensatz ausgegeben und ich möchte gerne alle in einem Array speichern nur wenn ich da versuch die Daten auf ein Array zu speichern dann geht garnichts mehr.
 
Ich bekomme aber immer nur den letzten Datensatz ausgegeben
Weil Du mit getInt(1) immer den gleichen Wert holst!
Schau' Dir mal den zweiten Link, da siehst Du, dass Du eine weitere Schleife brauchst, um dann mit getInt(i) arbeiten zu können!
Und ein Array brauchst noch immer nicht, da Du ja - wie gesagt - eine Map hast !!

VG Klaus
 
Du hast
Java:
Map<String, Object> model
model.put("message", this.message);
In einer Map muss der key (hier der String) eindeutig sein. Wenn du als key immer "menuid" wählst, hast du nur einen Eintrag in der Map.
 
Pack in model ein Array mit Results via put.

Und es macht keinen guten Eindruck in der zuerstgestellten Frage code in code Tag s zu schreiben in der darauffolgenden aber nicht mehr.
 
Ich bezweifle, dass du an der Stelle wirklich ein Array nutzen willst.
Nimm stattdessen eine Liste, füll diese in der Iteration über das ResultSet mit den entsprechenden Werten und füg die danach dem Model hinzu.

(Btw, wenn das deine Fragen sind, solltest du dich vielleicht noch etwas mehr mit den Grundlagen auseinander setzen und nicht direkt mit Spring einsteigen... (und der Chef bei dem Code vielleicht auch 😉 ))
 
Zuletzt bearbeitet:

Zurück
Oben