Google Website Translator Gadget

domingo, 11 de noviembre de 2012

Mapping de Oracle SQL a Java Types

Java logo
java.com
www.oracle.com
Al desenvolupar una aplicació tindràs dubtes de quin mapping fer entre Oracle i Java.
Aquest es el mapping que he utilitzat amb Oracle XE 11g2 i Java 7.

Mapping Oracle - Java

JavaJDBCOracle 11.2Java to SQLOracle DB to Java
byte (8-bit signed)
-128,+127
TINYINT (8-bit)
signed: -128, +127
or unsigned: 0, 255
NUMBERupdateByte(Column name, value)getByte("Column name")
short (16-bit)
-32768 , +32767
SMALLINTNUMBERgetShort("Column name")
int
(32-bit signed)
-2147483648 to 2147483647
INTEGER
32-bit signed
NUMBERgetInt("Column name")
float (32 bit)DECIMAL,
NUMERIC (*3)
NUMBERupdateFloat(Column name, value)getBigDecimal("Column name")
getFloat("Column name")
long (64-bit)BIGINTNUMBERgetLong("Column name")
double (64-bit)FLOAT
DOUBLE
NUMBER
booleanBITgetBoolean("Column name")
char
(16-bit Unicode)
StringVarchar2(nn)getString("Column name")
Timestamp
(*1,*2)
TimestampgetTimestamp("Column name")
Timestamp
(*1,*2)
TimestampgetDate("Column name")
-Fallarà-

Java Timestamp <- Java Date (Cast)
*1: Si es treballa amb molta precisió (nanosegons) es millor revisar el link de Oracle per tal de assegurar les conversions.
*2: Amb Java7 hi ha algunes diferències però estic buscant la documentació oficial.
*3: JDBC requires that all DECIMAL and NUMERIC types support both a precision and a scale of at least 15. Example: "12.345" has a precision of 5 and a scale of 3
NUMERIC (12,4) types representes with exactly the specified precision
DECIMAL (12,4) types allows an implementation to add additional precision beyond that specified

Source font:
Oracle: JDBC Developer's Guide (Actualitzat a la versió 11.2)
Java: Primitive datatypes: Aqui trobaràs els formats primitius de Java
http://docs.oracle.com/javase/6/docs/technotes/guides/jdbc/getstart/mapping.html#996857
http://docs.oracle.com/javase/1.5.0/docs/guide/jdbc/getstart/mapping.html

No hay comentarios:

Publicar un comentario