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