java.sql.SQLException:没有这样的列和false Period getDays结果

问题描述 投票:1回答:1

我是一个java初学者并且遇到两个问题。

1)SQL异常:没有这样的列'Ofen'

这是我的代码,我希望从名为“kleintest.db”的SQLite数据库中获取具有2个表“maindata”和“Zahlwertuntertable”的特定数据。 maindata包含'Ofen'条目为TEXT。 ResultSet rs通常应该从maindata中获取所有数据,而ResultSet rs2应该从Zahlwertuntertable获取权重。但是现在运行程序会显示上述错误。

public static void readDB() {

    try {
        Statement stmt = connection.createStatement();
        //ResultSet rs = stmt.executeQuery("SELECT * FROM Gewichtsabnahme;");
        ResultSet rs = stmt.executeQuery("SELECT * FROM maindata;");
        ResultSet rs2 = stmt.executeQuery("SELECT * FROM Zahlwertuntertable;");

        while (rs.next()) {
            System.out.println("Ofen = " + rs.getString("Ofen"));
            System.out.println("Platznummer = " + rs.getInt("Zahlwert"));
            System.out.println("Startdatum = " + rs.getString("Startdatum"));
            LocalDate heute = LocalDate.now();
            String Datum = rs.getString("Startdatum");
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
            LocalDate Wägetag = LocalDate.parse(Datum, formatter);
            Period DiffTag = Period.between(heute, Wägetag);
            System.out.format("Tage = " + DiffTag.getDays() + "\n");            //

            System.out.println("Gewicht = " + rs2.getInt("Startgewicht")); 

        }
        rs.close();           
        rs2.close();
        connection.close();

    } catch (SQLException e) {
        System.err.println("Zugriff auf DB nicht möglich.");
        e.printStackTrace();
    }
}

表maindata包含以下项目:Laufnummer Ofen Zahlwert Startdatum

但是Laufnummer只是一个主要的关键,不应该被检索。

2)Next Question是具有Period功能的东西。这很好但是作为打印结果我会得到P 1D或P 1M 2D看起来有些混乱。我喜欢打印像45或45D这样简单的天数,并将getDays()添加到我的DiffTag中。现在我的结果是-1,什么都没有意义。这有什么不对?

Period DiffTag = Period.between(heute, Wägetag);
        System.out.format("Tage = " + DiffTag.getDays() + "\n");

感谢您可能错过的建议和链接。但到目前为止我所看到的一切并没有指出我的具体问题。

java sqlite javafx localdate
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.