Zielony Smok - logo witryny

Apache Derby: typ danych REAL

Opis

Liczba zmiennoprzecinkowa 4 bajtów (32 bity)

Składnia

REAL

Odpowiadający typ Java

java.lang.Float

Odpowiadający typ JDBC

java.sql.Types.REAL

Zakres

typ min max
standardowa java.lang.Double.MIN_VALUE=-3.4028235E+38 java.lang.Double.MAX.VALUE=+3.4028235E+38
normalizowana -1.17549435E-38 +1.17549435E-38
denormalizowana -1.4E-45 +1.9E-45

‘Exxx’ oznacza ‘*10xxx’

Ograniczenia

Jeśli wstawiana wartość przekracza granice typu – wyrzucany jest wyjątek.

-0.0 jest normalizowane do 0.0

Maksymalna liczba znaków w zapisanej liczbie to 30 znaków.

Stałe zawsze są mapowane do ‘DOUBLE’. Aby przekształcić stałą w ‘REAL’ należy użyć rzutowania (użyć funkcji CAST).

Klasa R046.java
package aderby.types;

import aderby.DerbyUtil;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class R046_REAL {
    private static final String baza = "C:/Przyklady/r046";
    private static final String skrypt = "aderby/src/resources/sqls/r046.sql";

    public static void main(String[] args) {
        DerbyUtil.startDerbyEngine(DerbyUtil.embdriver);
        //Utworzenie bazy i wstawienie danych
        Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true");
        DerbyUtil.jdbcRunScript(skrypt, con);
        //pobranie danych
        Statement stat = null;
        ResultSet rs = null;
        try {
            stat = con.createStatement();
            rs = stat.executeQuery("SELECT * FROM ziemia");
            while (rs.next()) {
                System.out.println(rs.getString("nazwa") + " "
                        + rs.getFloat("val") + " " + rs.getString("jedn"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        DerbyUtil.close(rs);
        DerbyUtil.close(stat);
        DerbyUtil.close(con);
        DerbyUtil.shutdownEmbeddedDB(baza);
        DerbyUtil.shutdownDerbyEngine();
    }
}
Plik r046.sql
CREATE TABLE ziemia(
            id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY(
                START WITH 1, INCREMENT BY 1),
            nazwa VARCHAR(50),            
            val REAl,
            jedn VARCHAR (10)
);

CREATE INDEX i_nazwa ON ziemia (nazwa ASC);
CREATE INDEX i_val ON ziemia (val ASC);
INSERT INTO ziemia VALUES(DEFAULT, 'średni promień równikowy', 6378.137, 'km');
INSERT INTO ziemia VALUES(DEFAULT, 'średni promień biegunowy', 6356.752, 'km');
INSERT INTO ziemia VALUES(DEFAULT, 'średnie spłaszczenie biegunowe', 0.003353, '');
INSERT INTO ziemia VALUES(DEFAULT, 'mimośród elipsy tworzonej przez południki', 0.0818, '');
INSERT INTO ziemia VALUES(DEFAULT, 'promień średni dla objętości kuli', 6371.001, 'km');
INSERT INTO ziemia VALUES(DEFAULT, 'powierzchnia', 510.066, 'mld km2');
INSERT INTO ziemia VALUES(DEFAULT, 'objętość', 1083.207, 'mld km3');

Po uruchomieniu klasy na konsoli zobaczymy:

średni promień równikowy 6378.137 km
średni promień biegunowy 6356.752 km
średnie spłaszczenie biegunowe 0.003353
mimośród elipsy tworzonej przez południki 0.0818
promień średni dla objętości kuli 6371.001 km
powierzchnia 510.066 mld km2
objętość 1083.207 mld km3

Pliki do ściągnięcia

Aktualny (tworzony narastająco) plik module-info.java

Aktualny (tworzony narastająco) plik DerbyUtil.java

Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszystkich wpisach w projekcie. W przypadku pliku module-info.java może być potrzebne skreślenie niepotrzebnych wpisów.