Connexion oracle Netbeans
Salut tout le monde,
j'essaie de développer une application qui permet d'utiliser la couche InterMedia de Oracle. Donc j'ai une classe AjouterImage qui permet d'insérer une image dans une table déjà créée dans Oracle. Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
/*
* AjouterImage.java
*
* Created on 16 ديسمبر, 2007, 07:35 م
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package test_bdm;
/**
*
* @author ammoula
*/
// Importation des packages importants
import java.sql.*; // Pour la connexion avec Oracle
import java.io.*; // Pour les entrée sorties
import oracle.jdbc.*; // Pour les pilotes Oracle
import oracle.sql.*; // Pour les spécificités SQL d'Oracle
import oracle.ord.im.OrdImage; // Pour la classe OrdImage
import oracle.ord.im.OrdImageSignature; // Pour la classe OrdImageSignature
public class AjouterImage {
public static void main(String[] args) {
try {
// Etape 1 : Création de la connexion avec la base
// Enregistrement du pilote Oracle
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// Ouverture de la connexion avec la BD
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@host:1521:mabase", // url de la base
"user", // utilisateur
"password"); // mot de passe
// Etape 2 : Mise à false de l'autocommit
conn.setAutoCommit(false);
// Etape 3 : Initialisation de l'attribut ORDImage
// Ecriture de la requête SQL
String sql = "UPDATE MaTable SET image=ORDSYS.ORDImage.init() WHERE id=1";
// Création d'une instance d'un Objet Statement
Statement stmt = conn.createStatement();
// Execution de la requête
stmt.execute(sql);
// Etape 4 : Récupération du descripteur
// Ecriture de la requête SQL
String sql2 = "SELECT image FROM MaTable WHERE id=1 FOR UPDATE";
// Execution de la requête et récupération du résultat
OracleResultSet rset=(OracleResultSet) stmt.executeQuery(sql2);
// S'il y a un résultat
if( rset.next()) {
// Récupération du descripteur d'OrdImage
OrdImage imgObj = (OrdImage) rset.getCustomDatum(1, OrdImage.getFactory() );
// Etape 5 : Envoi de l'image
// Création d'un bloc try{}catch pour l'exception d'entrée/sortie
try{
// Envoi de l'image dans l'attribut localData du type ORDImage
imgObj.loadDataFromFile("c:\\image.jpg");
}
catch (IOException e){ e.printStackTrace(); }
// Etape 6 : Génération des métas données
// Génération des métas données (propriétés de l'image)
imgObj.setProperties();
// Vérification de la génération des propriétés
if(imgObj.checkProperties()) {
// Ecriture de la requête SQL pour mettre à jour l'attribut
String sql3 = "UPDATE maTable SET image=? WHERE id=1";
// Création d'une instance de l'objet OraclePreparedStatement
OraclePreparedStatement pstmt = (OraclePreparedStatement) conn.prepareStatement(sql3);
// Ajout de l'instance d'OrdImage dans la requête
pstmt.setCustomDatum(1, imgObj);
// Execution de la requête
pstmt.execute();
// Fermeture
pstmt.close();
// Etape 7 : Validation manuel de la base
conn.commit();
}
}
// Etape 8 : Fermeture des connexions et remise à true
stmt.close();
// Remise à true de l'auto commit
conn.setAutoCommit(true);
// fermeture de la connexion
conn.close();
} catch(SQLException e) { e.printStackTrace(); }
}
} // fin |
La compilation ne génère aucune erreur, mais lors de l'exécution, l'exception suivante est déclenchée.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
java.sql.SQLException: The Network Adapter could not establish the connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at test_bdm.AjouterImage.main(AjouterImage.java:37)
BUILD SUCCESSFUL (total time: 12 seconds) |
Est ce que quelqu'un peut m'aider la dessus ?
Merci d'avance.
requête d’insertion juste mais ne fonctionne pas
Salut,
je suis en train de développer une application qui fait la recherche par contenu sous Oracle, J'ai installé Oracle 11g r2 et j'ai créé ma base de données.
Je suis connecté à cette base avec eclipse à l'aide du driver JDBC et tout va bien.
Puis j'ai utilisé la même classe « AjouterImage » et ça marche très bien mais lorsque je regarde dans la table elle est vide :(!
Pouvez-vous m'aider ?