Aria

Apache Derby – tutorial

Apache Derby: funkcje matematyczne ogólne

Funkcje matematyczne ogólne w Apache Derby to:

Są to funkcje skalarne tzn. działające na pojedynczym wyniku (liczbie).

W przykładach do wszystkich klas użyjemy skryptu SQL mathdata.sql o treści:

CREATE TABLE mathdata(
            id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS
                    IDENTITY(START WITH 1, INCREMENT BY 1),
            val DOUBLE
);
CREATE INDEX i_val ON mathdata (val ASC);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, -37.8);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 39.7);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 36.6);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 33.2);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 39.2);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, -40.6);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 41.2);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 40.1);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, -39.8);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 38.9);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 38.3);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, -37.9);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 37.4);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 37.1);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, -36.8);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 36.7);
INSERT INTO mathdata (id, val) VALUES (DEFAULT, 36.6);

Klasa uruchamiająca jest niemal w całości ta sama. Różne są jedynie wywoływane stałe:

 DerbyUtil.startDerbyEngine(DerbyUtil.embdriver);
 Connection con = DerbyUtil.connectEmbeddedDB(baza, ";
     create=true");
 DerbyUtil.jdbcRunScript(skrypt, con);
 Statement stat = null;
 ResultSet rs = null;
 try {
       stat = con.createStatement();
       rs = stat.executeQuery(selectsql);
       while (rs.next()) {
           System.out.println(rs.getDouble(1) +
             "   " + rs.getDouble(2));
       }
 } catch (SQLException e) {
           e.printStackTrace();
}
DerbyUtil.close(stat);
//zamykamy połączenie
DerbyUtil.close(con);
DerbyUtil.close(rs);
//zatrzymujemy baze danych
DerbyUtil.shutdownEmbeddedDB(baza);
//zatrzymujemy silnik Derby
DerbyUtil.shutdownDerbyEngine();
//usuwamy bazę danych
DerbyUtil.dropDatabase(new File(baza));

Linki do ściągnięcia niezbędnych klas znajdą się przy omawianiu poszczególnych funkcji.