Java БД вставка новой записи в свернутую строку - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь вставить новые элементы в таблицу, но они не вставляются в последнюю строку. Вставляют куда хотят. Для пояснения, они могут вставлять на 30 рядов выше последнего. Самое смешное, что иногда работает нормально, иногда возникает такая проблема. Я попытался установить новую строку из netbeans -> services -> java DB -> моя база данных с той же проблемой.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public void doConnect()  {
   
    try{
        
        String host=fl.DataBaseFiles();
        String uName="tmimaIpologiston";
        String uPass="kyri";

        con=DriverManager.getConnection(host, uName, uPass);
        
    }
    catch (SQLException err){
        //JOptionPane.showMessageDialog(null, err.getMessage());
        JOptionPane.showMessageDialog(null, "Πρέπει πρώτα να εννωθείτε με τη βάση δεδομένων.", "Connection Error", JOptionPane.ERROR_MESSAGE);
        System.exit(0);
    }

  }


public void importToEF16DBassistantTest() {
   
    
    try {
        
        rs.close();
        stmt.close();
        
        stmt = ctd.con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_UPDATABLE);
        String sql = fl.selectAllFromEF16DBassistant();
        rs = stmt.executeQuery(sql);
        //kyria
        
        rs.moveToInsertRow();
        

        rs.updateInt("AE", Integer.parseInt(AEylikoy));
        rs.updateString("XRONIA", yearField.getText());
        rs.updateString("PALIOI_AE", AEpalioi);
        rs.updateString("MONADA", monada);
        rs.updateString("EF13", ef13);
        rs.updateString("IMEROMINIA_EF13", imerominiaEf13);
        rs.updateString("YLIKA", YlikoPane.getText());
        rs.updateString("SN", SNPane.getText());

        rs.updateString("KATASTASIOKAA", AAokField.getText());
        if (katastsiOKCheckBox.isSelected() == true) {
            ok = true;
        } else {
            ok = false;
        }
        rs.updateBoolean("OKBTN", ok);
        rs.updateString("KATASTASIPOEAA", AApoeField.getText());
        if (katastsiPOECheckBox.isSelected() == true) {
            poe = true;
        } else {
            poe = false;
        }
        rs.updateBoolean("POEBTN", poe);

        rs.updateString("EF157", EF157);
        rs.updateString("IMEROMINIA_EF157", EF157Imerominia);
        rs.updateString("AR_PRAKTIKOU", arithmosPraktikou);
        rs.updateString("ERGASIES", ergasies);
        rs.updateString("IMEROMINIA_ISODOU", imerominiaIsodou);
        rs.updateString("IMEROMINIA_PERAS_ERGASION", imerominiaPerasEpiskevis);
        rs.updateString("IMEROMINIA_EXODOU", imerominiaExodou);

       
        rs.insertRow();

        rs.close();
        stmt.close();
        

    } catch (SQLException ex) {
        ex.printStackTrace();
        Logger.getLogger(EF16.class.getName()).log(Level.SEVERE, null, ex);
        
    }




    importFromEF16DBassistant();
}

1 Ответ

0 голосов
/ 09 июля 2020

Таблицы в реляционных базах данных по своей природе неупорядочены.

Это означает, что нет «позиции», в которую он вставлен, он просто добавляется к набору строк. В этом смысле таблицы во многом похожи на Set или Map в Java: у них нет порядка, просто «куча содержимого».

Если вы хотите вернуть значения в определенном порядке c, вы должны использовать ORDER BY, чтобы указать, по какому значению вы хотите их отсортировать в заданном SELECT.

Это применимо практически ко всем реляционным базам данных и, как таковое, почти к все, что вы можете получить с помощью JDBC / java.sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...