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.