Rechercher : dans
Par :

L'équivalent de double avec oracle

Dernière réponse le 4 jun 2009 à 11:12:58 vigwa, le 3 jun 2009 à 04:58:57 
 Signaler ce message aux modérateurs

Bonjour,
Je programme en java avec l'IDE Netbeans et je dois faire un mapping avec Hibernate d'une base de données oracle.Mon problème est que je jongle desesperement sur l'échele du type Numerique pour trouver le type double en java après le mapping.
merci de m'aider.

Configuration: Windows Vista Internet Explorer 7.0

Meilleures réponses pour « l'équivalent de double avec oracle » dans :
Equivalent de Partition Magic (gratuit) VoirIl existe aujourd'hui plusieurs logiciels gratuits/libres pour partitionner qui équivalent le logiciel payant Partition Magic et constituent une excellente alternative. Voici une sélection des meilleurs logiciels de partitionnement gratuits ou...
Equivalent de Microsoft Office (gratuit) VoirIl existe aujourd'hui des suites bureautiques gratuites et libres qui équivalent la suite Microsoft Office onéreuse. Pour rappel, une suite bureautique propose généralement les éléments suivants : traitement de texte, tableur, présentation...
Equivalent de Nero (gratuit) VoirIl existe aujourd'hui plusieurs logiciels gratuits/libres pour graver qui équivalent le logiciel payant Nero. Voici une sélection des meilleurs logiciels de gravure gratuits ou libres : Burnatonce : http://burnatonce.com/ BurnCDCC :...
Télécharger Double Driver VoirDouble Driver est un outil qui vous permet de vérifier les pilotes installés sur votre système. Vous pouvez ainsi maintenir les pilotes que vous choisirez, les sauvegarder et imprimer une liste … Double Driver est un outil destiné à rechercher et...
Oracle - Les séquences VoirCet article s'appuie sur la version 8.1.6 d'Oracle. Une séquence est un objet de base de données Oracle, au même titre qu'une table, une vue, etc... Autrement dit, il appartient à un utilisateur, on peut le manipuler, le modifier, à condition...
Oracle - Introduction au SGBD Oracle VoirIntroduction au SGBD Oracle Oracle est un SGBD (système de gestion de bases de données) édité par la société du même nom (Oracle Corporation - http://www.oracle.com), leader mondial des bases de données. La société Oracle Corporation a été créée en...
Oracle - Les fichiers d'une base Oracle VoirLes fichiers physiques d'une base Oracle Les fichiers physiques d'une base Oracle permettent de stocker de manière persistante les données manipulées par Oracle, tandis que la mémoire sert à optimiser la vitesse de fonctionnement de la base de...

1

sandul, le 3 jun 2009 à 08:17:29

Salut,

Tu peux utiliser côté Oracle FLOAT ou NUMBER tout simplement (précision décimale). Et les mapper vers float ou double côté Java.

Il y a également les types BINARY_FLOAT et BINARY_DOUBLE (précision binaire). BINARY_DOUBLE sera stocké sur 9 bytes tout le temps (alors que l'espace requis par NUMBER est variable et dépend du nombre à stocker).

++

Répondre à sandul

2

vigwa, le 4 jun 2009 à 00:35:06

Pardon de te derranger encore une fois.
Que ce que tu veux dire par "précision décimale"?
Je travail avec oracle 10G et il propose pas de type float.
je vous montre les types que je viens de tester et leurs correspondances côté java après mapping.

1)number(8,0)=>int
2)number(16,0)=>long
3)number =>BigDecimal
4)number(2,0)=>Byte
5)Bynary_Float=>serializable
6)Bynary_Double=>serialisable
Je signale que j'ai générer le pojos correspondant à ma table avec netbeans 6.5(Hibernate Mapping File and Pojos from Data Base).
Merci de votre aide.

Répondre à vigwa

3

 sandul, le 4 jun 2009 à 11:12:58

Hi,

J'ai déjà fait des mappings de types Jave - base de données, mais je ne connais pas Hibernate. Si je comprends bien, tu as un mappage à faire {types Java}--->{types Oracle}. Est-ce que cette fonction de mappage:
- doit être surjective ? (Tous les types Java mappés vers Oracle)
- doit être injective ? (Chaque type Java mappé vers son propre type Oracle)
- doit avoir une inverse ? Si oui, est-ce que son inverse soit être surjective/injective?

En fonction des réponses à ces questions, les solutions sont différentes.

Sinon, il y a bel et bien un type FLOAT sous Oracle:
Oracle Database also supports the ANSI datatype FLOAT. You can specify this datatype using one of these syntactic forms:
FLOAT
FLOAT(n)
The number n indicates the number of bits of precision that the value can store. The value for n can range from 1 to 126. To convert from binary to decimal precision, multiply n by 0.30103. To convert from decimal to binary precision, multiply the decimal precision by 3.32193. The maximum of 126 digits of binary precision is roughly equivalent to 38 digits of decimal precision.


(Source: http://download-east.oracle.com/... ) Dans le passage précédent, on t'explique également les règles de passage d'une précision décimale à une précision binaire.

Concernant tes mappages proposés:

NUMBER(8) --> int est presque correct (on peut stocker des milliards dans un entier, donc NUMBER(9) --> int serait encore mieux).

NUMBER --> BigDecimal n'est pas correct non plus (car on peut stocker des nombre à virgule flottante dans NUMBER)

Quant au mappage BINARY_FLOAT --> serializable: ça ne veut rien dire (Serializable n'est pas un type de données dans Java)

++

Répondre à sandul