Annonces GOOGLE

Présentation du BLOG

Ce BLOG est dédié à la programmation en JAVA J2EE

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 : 
 


Aucun commentaire: