 import java.sql.*; // Pour la connexion a une BD
 import java.sql.SQLException;
 //import oracle.jdbc.*; // Pour les pilotes Oracle
 //import oracle.sql.*; // Pour les sp&eacute;cificit&eacute;s SQL d'Oracle
 //import oracle.jdbc.driver.*;
 //import java.util.jar.*;
 //import java.util.zip.*;
 
 /**
  * @author P. Capolsini d'apr&egrave;s un code de "psyphi" sur http://www.javafr.com
  */
/*
 * Il faut :
 * 	* t&eacute;l&eacute;charger le fichier "ojdbc14.jar" depuis le site oracle.com
 *  * mettre le fichier jar dans votre dossier de projet
 *  * cliquer droit sur le projet et choisir "Properties"
 *  	cliquer sur l'onglet "Libraries" puis sur le bouton "Add External JARs"
 *  	indiquer l'emplacement du fichier ojdbc14.jar
 */


public class ConnectOracle9i {
 Connection con = null;
 
 private static void affiche(String message) {
	 System.out.println(message);
 }
 private static void arret(String message) {
	 System.err.println(message);
	 System.exit(99);
 }

 public void chargeDriver(String driver) {
//		chargement des drivers pour la base Oracle
	try
	 {
		 Class.forName(driver);
		 System.out.println ("Drivers trouves");
	 }
	 catch(Exception e)
	 {
		 System.out.println ("Erreur:Driver introuvable");
	 }
 }
 
 public void connexionBD(String url, String user, String passwd) {
 //connexion &agrave; la base
 try
 {
	 // URL = "jdbc:oracle:thin:@nom_du_serveur_oracle:port_jdbc_oracle:nom_de_BD"
	 String URL = url;
	 // URL = "jdbc:oracle:thin:user/passwd@nom_du_serveur_oracle:port_jdbc_oracle:nom_de_BD"
	 //String URL = "jdbc:oracle:thin:tech40/oht4Coha@bd-oracle.etudiant.upf.pf:1521:XE";
	 
	 String USER = user;
	 String PASSWD = passwd;
	 
	 con = DriverManager.getConnection(URL,USER, PASSWD);
	 System.out.println ("Connexion base etablie");
 }
 catch(Exception e)
 {
	 System.out.println ("Erreur: base introuvable");
	 System.out.println (e.getMessage());
 }
 }
 /**
  * 
  * @param requete Commande SQL de Query
  */
 public ResultSet requeteQuery(String requete){
 
 try {
	 Statement stmt = con.createStatement();
	 return stmt.executeQuery(requete);
 } catch (SQLException e) {
	 System.out.println("Anomalie lors de l'execution de la requête");
	 return null;
 }
 }
 
 public void affichage(ResultSet resultats){
 // parcours des donn&eacute;es retourn&eacute;es
 affiche("Parcours des donn&eacute;es retourn&eacute;es :");
 try {
	 ResultSetMetaData rsmd = resultats.getMetaData();
	 int nbCols = rsmd.getColumnCount();
	 for (int i = 1; i <= nbCols; i++)
		 System.out.print(rsmd.getColumnLabel(i)+"\t");
	 System.out.println();
	 
	 boolean encore = resultats.next();
	 while (encore) {
		 for (int i = 1; i <= nbCols; i++)
			 System.out.print(resultats.getString(i) + "\t");
		 System.out.println();
		 encore = resultats.next();
	 }
	 
	 resultats.close();
 	} catch (SQLException e) {
 		arret(e.getMessage());
 		}
 }
 
/**
 * 
 * @param requete Commande SQL d'Update
 * 
 */
public void requeteUpdate(String requete){
int nblignes;

	 try {
		Statement stmt = con.createStatement();
		nblignes = stmt.executeUpdate(requete);
		System.out.println("Lignes ins&eacute;r&eacute;es : " + nblignes);
		
	 } catch (SQLException e) {
		System.out.println("Anomalie lors de l'execution de l'Update");
		System.out.println(e.getMessage());
	 	}
 }

 // Ouverture de la connexion, envoi et r&eacute;cup&eacute;ration d'une requête simple
 public static void main (String args[]){
	 String requetQuery = "select * from etudiant";
	 String requetUpdate = "insert into etudiant values (10, 'toto', 'truc', 7070)";
	 String requetUpdate2 = "delete from etudiant where NUM_ETUDIANT=10";
	 
	 // connexion &agrave; la base
	 ConnectOracle9i B= new ConnectOracle9i();
	 B.chargeDriver("oracle.jdbc.driver.OracleDriver");
	 B.connexionBD("jdbc:oracle:thin:@bd-oracle.etudiant.upf.pf:1521:XE", "java1", "oGahpoy2");
	 
	 // Un Query, un Update et un Query pour v&eacute;rifier le travail
	 System.out.println("La table AVANT ajout :");
	 B.affichage(B.requeteQuery(requetQuery));
	 
	 System.out.println("Procedons a un ajout dans la table :");
	 B.requeteUpdate(requetUpdate);
	 System.out.println("La table APRES ajout :");
	 B.affichage(B.requeteQuery(requetQuery));
	 
	 System.out.println("Proc&eacute;dons &agrave; la suppression de l'enregistrement ins&eacute;r&eacute; : ");
	 B.requeteUpdate(requetUpdate2);
	 B.affichage(B.requeteQuery(requetQuery));
 }


 } 




