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
|
// 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
import oracle.sqlj.runtime.*;
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.OracleDriver());
// Ouverture de la connexion avec la BD
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:base","user","pwd");
// 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 IMG_MEDICAL SET IMAGE=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
//conn.commit();
String sql2 = "SELECT IMAGE FROM IMG_MEDICAL WHERE ID=1 FOR UPDATE";
// Execution de la requête et récupération du résultat
OracleResultSet rset=(OracleResultSet) stmt.executeQuery(sql2);
if( rset.next()) {
// Récupération du descripteur d'OrdImage
OrdImage imgObj = (OrdImage) rset.getORAData("image", OrdImage.getORADataFactory() );
// 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:\\img\\1.jpg");
// System.out.println("result2");
// System.out.println(imgObj);
}
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 IMG_MEDICAL 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.setORAData(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 |
Partager