Annonces GOOGLE

Présentation du BLOG

Ce BLOG est dédié à la programmation en JAVA J2EE
Affichage des articles dont le libellé est ORACLE. Afficher tous les articles
Affichage des articles dont le libellé est ORACLE. Afficher tous les articles

mercredi 12 novembre 2008

JAVA J2EE Package Procedure PL SQL stockee

Notre objectif dans cette note est d'utiliser à partir d'une classe JAVA un package PL/SQL pour insérer des données dans une table ORACLE.

Pour accéder à la base de données ORACLE, nous utiliserons la classe ConnectionDB décrite dans la note : 

http://java-programmation.blogspot.com/2008/11/jdeveloper-jdbc-thin-acces-base-de.html

Objets ORACLE utilisés dans cet exemple :

  • Utilisateur (Schéma) : NFP121
  • Table : SERVICE
  • Package stocké : PKG_SERVICE
  • Procédure stockée : INSERT_SERVICE

Ci-dessous le code PL/SQL du package utilisé :

create or replace PACKAGE "PKG_SERVICE" AS

PROCEDURE INSERT_SERVICE

(P_CODE IN VARCHAR2,

P_LIBELLE IN VARCHAR2);

PROCEDURE UPDATE_SERVICE

(P_CODE IN VARCHAR2,

P_LIBELLE IN VARCHAR2);

END;

/

create or replace PACKAGE BODY "PKG_SERVICE" AS

PROCEDURE INSERT_SERVICE

(P_CODE IN VARCHAR2,

P_LIBELLE IN VARCHAR2)

IS

BEGIN

INSERT INTO SERVICE

(CODE, LIBELLE)

VALUES

(P_CODE, P_LIBELLE);

END INSERT_SERVICE;

PROCEDURE UPDATE_SERVICE

(P_CODE IN VARCHAR2,

P_LIBELLE IN VARCHAR2)

IS

BEGIN

UPDATE SERVICE

SET LIBELLE = P_LIBELLE

WHERE CODE = P_CODE;

END UPDATE_SERVICE;

END;

/

Le code de la classe JAVA qui utilise la procédure stockée INSERT_SERVICE : 

package gestionemployes;

import java.sql.CallableStatement;

import java.sql.SQLException;

import java.sql.*;

public class TEST1 {

    public TEST1() {

    }

  public static void main(String[] args) {  


    try{

        ConnectionDB cnxDB = new ConnectionDB();

        cnxDB.connect();

        CallableStatement ServiceInsertCall;     

        ServiceInsertCall = cnxDB.conn.prepareCall("{ call PKG_SERVICE.INSERT_SERVICE(?, ?) }");

        ServiceInsertCall.setString("P_CODE",args[0]);       

        ServiceInsertCall.setString("P_LIBELLE",args[1]);

        ServiceInsertCall.execute();

        System.out.println("Service insere");

    }

    catch(SQLException sqle){

        System.out.println(sqle.toString());}   

    }

}


Ci-dessous un document pdf décrivant comment créer les packages PL/SQL : 

Les copies d'écrans de l'exécution du programme JAVA : 
 


mardi 11 novembre 2008

JDeveloper JDBC thin Acces Base de donnees ORACLE

Ci-dessous une classe Java qui se connecte à une base de données ORACLE en utilisant le JDBC Thin.
  • User ORACLE : NFP121
  • Mot de passe : nfp121
  • Port d'accès au serveur ORACLE : 1521
La classe JAVA s'appelle ConnectionDB. Pour pouvoir compiler cette classe dans JDeveloper, il faut : 
  1. Ouvrir les propriété du projet qui contient la classe, dans cet exemple c'est "GestionEmployes" : Clique droit sur le projet, puis choisir propriétés du projet.
  2. Dans le menu gauche, choisir "Librairie".
  3. Ajouter "ORACLE Driver" dans les librairies du projet.
Ci-dessous le code de la classe ConnectionDB : 

package gestionemployes;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionDB {

    public Connection conn;
    
    public ConnectionDB() {
    }
    public void connect() {
        
        try
        {
           DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); 
           conn = DriverManager.getConnection
                         ("jdbc:oracle:thin:@localhost:1521:XE", "NFP121", "nfp121");              
        }
        catch(SQLException sqle){
        System.out.println(sqle.toString());
        }
        finally{
        }
    }
}