[JDBC][SQL3][Oracle] récupérer un objet de la base

récupérer un objet de la base [JDBC][SQL3][Oracle] - Java - Programmation

Marsh Posté le 28-12-2004 à 06:06:25    

Hello,
 
Je travail avec oracle 10G et JDBC.
J'essai tant bien que mal de créer un type object, une table contenant c'est objects de faire une requêtes sur celle ci et de récupérer directement l'objet.
Et tout ça en procédure stockée en JAVA.
 
l'exemple sera plus parlant:
 

Code :
  1. Class.forName("oracle.jdbc.driver.OracleDriver" );
  2. Connection conn = DriverManager.getConnection("jdbc:oracle:kprb:","RAS", "RAS" );
  3. Statement stmt = conn.createStatement();
  4. stmt.executeUpdate("CREATE or REPLACE TYPE PERSONNE as OBJECT(NOM VARCHAR(40),PRENOM VARCHAR(40),AGE INTEGER)" );
  5. stmt.executeUpdate("CREATE TABLE PERSONNES of PERSONNE" );
  6. stmt.executeUpdate("insert into PERSONNES values ('BOBOT','Nico',25)" );
  7. // mise en place du mapping
  8. Map map = conn.getTypeMap();
  9. //la classe personne faitpartie du package abdr
  10. //ici il parait qu'il faut indiqué le nom de l'utilisateur qui créait la classe dans la base
  11. map.put("RAS.PERSONNE", Class.forName("abdr.Personne" ));
  12. String sql = "SELECT * FROM PERSONNES";
  13. ResultSet resultset = stmt.executeQuery(sql);
  14. //maintenant que j'ai récupérer des personnes je voudrais les affihcer  
  15. while(resultset.next()){
  16. //Mais ici le CAST ne lui convient pas du tout, mais alors pas du tout
  17. abdr.Personne personne = (abdr.Personne)resultset.getObject(1,map);
  18. System.out.println("Nom = "+personne.getNom());
  19. System.out.println("Prenom = "+personne.getPrenom());
  20. System.out.println("Age  = "+personne.getAge());
  21. }


 
Le cas de l'objet en personne ne lui convient pas, je suis pourtant 2 exemples, un trouvé sur developpez.com et un autre dans un pdf, ils sont identiques.
 
Ca ne passe pas, j'ai un ClassCastException et c'est pas gentil :'(.
J'ai essayé de 1000manières différentes et je ne rien trouvé.
Non plus sur le net :(.
une idée ?


---------------
"PAR LE POUVOIR DU CRÂNE ANCESTRAL, JE DETIENS LA FORCE TOUTE PUISSANTE".
Reply

Marsh Posté le 28-12-2004 à 06:06:25   

Reply

Marsh Posté le 28-12-2004 à 19:04:36    

Pas de soluce :'(.


---------------
"PAR LE POUVOIR DU CRÂNE ANCESTRAL, JE DETIENS LA FORCE TOUTE PUISSANTE".
Reply

Marsh Posté le 28-12-2004 à 19:15:30    

get et setObject en jdbc, ça te permet de stocker un objet sérialisé dans ta base; à priori ça n'a rien à voir avec les types custom que tu sembles pouvoir/vouloir utiliser avec oracle?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-12-2004 à 20:06:37    

arf, la je debute pour l'interrogation via jdbc de bd objet, mais j'ai trouvé quelques petits trucs sur le site d oracles avec des exemples.
J'ai pas tout étudié, apparement il montre l'exemple qui permet de caster directement un tuple (objet) directement en objet java :
http://www.oracle.com/technology/t [...] isting.htm
 
pour get et set object il me semble que ca recupere un objet ou le creait enfin faut que j etudie ca de pret :/.
Mais y a pas des milliers de documents concernant ce genre de manipulation, les bd objets sont si peu performante qu'elles ne sont pas utilisées :p ?


---------------
"PAR LE POUVOIR DU CRÂNE ANCESTRAL, JE DETIENS LA FORCE TOUTE PUISSANTE".
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed