Apache Derby: typ danych DOUBLE
Opis
Liczba zmiennoprzecinkowa 8 bajtów (64 bity)
Składnia
DOUBLE
albo
DOUBLE PRECISION
Odpowiadający typ Java
java.lang.Double
Odpowiadający typ JDBC
java.sql.Types.DOUBLE
typ | min | max |
---|---|---|
standardowa | java.lang.Double.MIN_VALUE = -1.7976931348623157E308 | java.lang.Double.MAX.VALUE = +1.7976931348623157E308 |
normalizowana | -2.2250738585072014E-308 | +2.2250738585072014E308 |
denormalizowana | -4.9E-324 | +4.9E-324 |
’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.
Klasa R043
package aderby.types; import aderby.DerbyUtil; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class R043_DOUBLE { private static final String baza = "C:/Przyklady/R043"; private static final String createTable = "CREATE TABLE masy(\n" + " id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY(\n" + " START WITH 1, INCREMENT BY 1),\n" + " nazwa VARCHAR(50), \n" + " masa DOUBLE\n" + ")"; private static final String createIndex1 = "CREATE INDEX i_nazwa ON masy (nazwa ASC)"; private static final String createIndex2 = "CREATE INDEX i_masa ON masy (masa ASC)"; private static final String a1 = "INSERT INTO masy VALUES (DEFAULT, 'Elektron', 9.11E-31)"; private static final String a2 = "INSERT INTO masy VALUES (DEFAULT, 'Proton', 1.67E-27)"; private static final String a3 = "INSERT INTO masy VALUES (DEFAULT, 'Atom wodoru', 1.67E-27)"; private static final String a4 = "INSERT INTO masy VALUES (DEFAULT, 'Cząsteczka wody', 2.99E-26)"; private static final String a5 = "INSERT INTO masy VALUES (DEFAULT, 'Cząsteczka tRNA', 4E-23)"; private static final String a6 = "INSERT INTO masy VALUES (DEFAULT, 'Komar', 1E-6)"; private static final String a7 = "INSERT INTO masy VALUES (DEFAULT, 'Kropla wody', 4E-5)"; private static final String a8 = "INSERT INTO masy VALUES (DEFAULT, 'Ziarno maku', 5E-7)"; public static void main(String[] args) { DerbyUtil.startDerbyEngine(DerbyUtil.embdriver); //Utworzenie bazy Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true"); //wstawienie danych Statement stat = null; try { stat = con.createStatement(); stat.addBatch(createTable); stat.addBatch(createIndex1); stat.addBatch(createIndex2); stat.addBatch(a1); stat.addBatch(a2); stat.addBatch(a3); stat.addBatch(a4); stat.addBatch(a5); stat.addBatch(a6); stat.addBatch(a7); stat.addBatch(a8); stat.executeBatch(); } catch (SQLException e1) { e1.printStackTrace(); } //pobranie danych ResultSet rs = null; try { stat = con.createStatement(); rs = stat.executeQuery("SELECT * FROM masy ORDER BY nazwa"); while (rs.next()) { System.out.println( rs.getString("nazwa") + " " + rs.getDouble("masa")); } } catch (SQLException e) { e.printStackTrace(); } DerbyUtil.close(rs); DerbyUtil.close(stat); DerbyUtil.close(con); DerbyUtil.shutdownEmbeddedDB(baza); DerbyUtil.shutdownDerbyEngine(); } }
Po uruchomieniu klasy na konsoli zobaczymy:
Atom wodoru 1.67E-27 Cząsteczka tRNA 4.0E-23 Cząsteczka wody 2.99E-26 Elektron 9.11E-31 Komar 1.0E-6 Kropla wody 4.0E-5 Proton 1.67E-27 Ziarno maku 5.0E-7
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.