从数据库获取空值到jTable

时间:2019-04-01 16:06:04

标签: java

enter image description here我在将数据库加载到jTable时遇到了一个小问题,字符串应该为空,然后变为null,而我只是不知道如何解决?我是相对较新的,在=)之前没有使用对象和GUI,如果您看图片,前3行应该看起来像数字4(数据库中的1-3和新添加的4)。通过此处的注释,应更改行???

public DefaultTableModel DatenbankLaden() {
        DefaultTableModel dtm = new DefaultTableModel() {
            @Override
            public Class getColumnClass(int column) {
                for (int row = 0; row < getRowCount(); row++) {
                    Object o = getValueAt(row, column);

                    if (o != null) {
                        return o.getClass();

                    }

                }

                return Object.class;
            }

        };

        try {

            populate(dtm);

        } catch (Exception e) {

            JOptionPane.showMessageDialog(null, "Laden Fehlgeschlagen");
        }

         for (int i = 0; i < dtm.getRowCount(); i++) {  \\here
                for (int j = 0; j < dtm.getColumnCount(); j++) { 
                    Object ob = dtm.getValueAt(i, j);
                if (ob == null || ob.toString().isEmpty()) {
                    dtm.setValueAt("na", i, j);
                }
                }
            }

        return dtm;
    }

    private TableModel populate(DefaultTableModel dtm) {

        try {

            dtm.addColumn("Auftragsnummer");
            dtm.addColumn("Auftragsdatum");
            dtm.addColumn("Auftraggeber");
            dtm.addColumn("Telefon");
            dtm.addColumn("E-mail");
            dtm.addColumn("Lieferadresse");
            dtm.addColumn("Beschreibung");
            dtm.addColumn("Fertigungszeit");
            dtm.addColumn("Fertigungsbeginn");
            dtm.addColumn("Fertiggestellt");
            dtm.addColumn("Lieferzeit");
            dtm.addColumn("Versenden");
            dtm.addColumn("Versendet");
            dtm.addColumn("Beim Kunden");
            dtm.addColumn("Auftragerledigt");

            con = DriverManager.getConnection("jdbc:derby://localhost:1527/meinedb", "root", "root123");
            String sql = "SELECT * FROM ROOT.AUFTRÄGE ";
            Statement S = con.createStatement();
            rst = S.executeQuery(sql);

            while (rst.next()) {
                nummer++;
                dtm.addRow(new Object[]{
                    rst.getInt(1),
                    rst.getString(2),
                    rst.getString(3),
                    rst.getString(4),
                    rst.getString(5),
                    rst.getString(6),
                    rst.getString(7),
                    rst.getInt(8),
                    rst.getString(9),
                    rst.getBoolean(10),
                    rst.getInt(11),
                    rst.getString(12),
                    rst.getBoolean(13),
                    rst.getString(14),
                    rst.getBoolean(15)

                });




            }

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }



        return dtm;
    }

如果您能回答我这个问题,那就太好了

0 个答案:

没有答案