Hirdetés

Keresés

Új hozzászólás Aktív témák

  • artiny
    őstag

    Na a kovetkezo a helyzet. Elolvastam a kodot is, amit fentebb linkeltel es tobb problema is van.

    Eloszor is ugyanarrol a threadrol irsz es olvasol adatbazist, amelyikrol GUI elemeket modositasz. A GUI tipikusan nem thread safe, a hozza tartozo elemeket (buttonok pl) a GUI threaden kell modositani. Ezen a threaden pedig nem kellene blokkolo muveleteket pl DB kezelest inditani, mert megakad az egesz felulet tole.

    A masik, hogy a ResultSet-en azutan hivod meg a next() metodust miutan meghivtad a close() metodust (executeUpdate mar nem ad vissza uj ResultSetet igy a regi lezartat fogod hasznalni tovabb) es ezert kapsz "ResultSet not open. Operation 'next' not permitted." hibauzenetet.

    A harmadik pedig, hogy konnyebb dolgod lenne, ha a string osszefuzogetes helyett PreparedStatementet hasznalnal, ha mar mindenkepp JDBC-vel kell megoldani a feladatot es nem hasznalhatsz valami ORM frameworkot.

    a blokkolo dolgokat kivettem mar es az ket darab enabledot is bekapcslam a ket gombra.(save es a cancelra)
    Amikt irtal a ResultSet rol azt azzal nem oldahato meg ha kommentelem a .close(); -t?

    a save button ilyen most:

    private void btnSaveRecordActionPerformed(java.awt.event.ActionEvent evt) {
    //...................................................................................
    String first = textFirstName.getText();
    String last = textLastName.getText();
    String job = textJobTitle.getText();
    String ID = textID.getText();
    int newID = Integer.parseInt(ID);

    try {
    VALUES("+newID+",'"+first+"','"+last+"','"+job+"')";
    String insertSql = "INSERT INTO Workers (ID,FIRST_NAME,LAST_NAME,JOB_TITLE) VALUES(" + newID + ",'" + first + "','" + last + "','" + job + "')";
    stmt.executeUpdate(insertSql);


    rs.next();
    int id_col = rs.getInt("ID");
    String id = Integer.toString(id_col);
    String first2 = rs.getString("First_Name");
    String last2 = rs.getString("Last_Name");
    String job2 = rs.getString("Job_Title");

    textID.setText(id);
    textFirstName.setText(first2);
    textLastName.setText(last2);
    textJobTitle.setText(job2);

    } catch (SQLException err) {
    System.out.println(err.getMessage());
    }

    PreparedStatementet -pedig most utana nezek

Új hozzászólás Aktív témák