Connexion à une base oracle

Soyez le premier à donner votre avis sur cette source.

Vue 5 856 fois - Téléchargée 786 fois

Description

Cette source propose une classe qui permet d'accéder à une base de données oracle.
Pour s'exécuter ce programme a besoin de la librairie ojdbc.

Source / Exemple :


 
package projet.model.bdd.connexion;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import fr.insee.projetipc.Configuration;

import oracle.jdbc.pool.OracleDataSource;
/**
 * <b>ConnexionOracleVaiJdbc represente une classe d'acces a une base de donnees Oracle</b>
 * <p>
 * Un ConnexionOracleViaJdbc est caractérisé par les informations suivantes :
 * <ul>
 * <li>Une connexion a la base oracle</li>
 * <li>Une source vers la base oracle</li>
 * </ul>
 * </p>
 * <p>
 * Cette classe sert à définir les fonctions d'acces en lecture et en 
 * ecriture a la base Oracle
 * </p>
 * 
 * @author Julien
 * @version 1.0
 */
public class ConnexionOracleViaJdbc {
    
    /**
      * Connexion a la base
      */
    private Connection connexion;
    
    /**
      * Source oracle
      */
    private OracleDataSource oraclesource;
    

    /**
      * Constructeur
      * @param idUtilisateur
      *        identifiant d'acces a la base oracle
      * @param motPasse
      *     mot de passe permettant d'acceder a la base
      * @param url
      *        url de connexion a la base
      * @throws BddException
      */
    public ConnexionOracleViaJdbc(String idUtilisateur, String motPasse, String url) throws BddException {
        try {
            oraclesource= new OracleDataSource();
            Properties properties = new Properties();
            properties.setProperty("oracle.jdbc.V8Compatible", "true");
            oraclesource.setConnectionProperties(properties);
            oraclesource.setUser(idUtilisateur);
            oraclesource.setPassword(motPasse);
            oraclesource.setURL(url);
            connexion = oraclesource.getConnection();
            connexion.setAutoCommit(true);
        }
        catch (SQLException e) {
            throw new BddException("Erreur lors de l'initialisation de la base", e);
        }
    }
    

    public void fermer() throws BddException {
        try {
            connexion.close();
        } 
        catch (SQLException e) {
            throw new BddException("Erreur lors de la fermeture de la connexion a la base", e);
        }
    }

    public void ouvrir() throws BddException{
        try {
            if (connexion.isClosed()){
                connexion = oraclesource.getConnection();
            }
        }
        catch (SQLException e) {
            throw new BddException("Erreur lors de l'ouverture de la connexion a la base", e);
        }

    }
    
    public ResultSet executeQuery(String requete) throws BddException{
        Statement statement = connexion.createStatement();
        ResultSet res = null;
        try {
            res = statement.executeQuery(requete);
        }
        catch (SQLException e) {
            throw new BddException("Erreur lors de l'execution de la requete", e);
        }
        return res;
    }

    public void executeUpdate(String requete) throws BddException {
        Statement statement = connexion.createStatement();
        try {
            statement.executeUpdate(requete);
        }
        catch (SQLException e) {
            throw new BddException("Erreur lors de l'execution de la requete", e);
        }
    }

}

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

Romano58
Messages postés
120
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
7 octobre 2011
-
Bonjour.

Etant donné l'abstraction proposé par les drivers jdbc, je pense que cette classe n'est pas vraiment utile. En effet, il suffit de remplacer le classname du jdbc oracle par un autre (mysql par exemple) et cela devrais fonctionner tout aussi bien. Sans, oublier de changer la classe du champ oraclesource (qui passe de OracleDataSource en DataSource du coup).

Peut être que l'implémentation du driver Oracle différe des autres?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.