Annonces GOOGLE

Présentation du BLOG

Ce BLOG est dédié à la programmation en JAVA J2EE
Affichage des articles dont le libellé est Package. Afficher tous les articles
Affichage des articles dont le libellé est Package. 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 :