begin process at 2010 02 10 06:54:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Au secours

 > 

recuperer une connexion JDBC


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

recuperer une connexion JDBC

samedi 1 février 2003 à 19:28:49 | recuperer une connexion JDBC

tchiomimine

Salut !
Voila je doit faire un projet assez rapidement (j'espere dc avoir la solution rapidement :) !! ) et j'ai un probleme pour utiliser une connxexion jdbc dans les classes que je veut.
En fait je crée une classe qui etablit ma connexion et puis ensuite je fais mes requetes et leurs traitements dans ds classes spécifiques. A chaque fois j'ai la celebre erreur "nullPointerException" sur la ligne des mes requetes.

Soit j'ai ce code dans une classe :
Statement selectStmt = ConnexionBase.getStatement();
ResultSet rSet = selectStmt.executeQuery ("select id_even, titre_even, to_char(heure_deb, 'HH24:MI:SS') as heure_debut, to_char(heure_fin,'HH24:MI:SS') as heure_fin from evenement where type_even ='rdv' ORDER BY 1");

avec getStatement déclaré en statique dans la classe ConnexionBase

Soit j'ai le code :
Connection connx = ConnexionBase.getConnexion();
try{
//initialisation jdbc du preparedstatement
PreparedStatement Pstmt = connx.prepareStatement("select id_user, nom from utilisateur where pseudo = ? and password= ?");

avec getConnexion déclaré en statique dans la classe Connexionbase. Je pense que c'est soit le statement, soit la connexion qui n'est pas instancié mais comment résoudre ce problème ? merci beaucoup de votre aide !!!
C'est important et urgent ! :)
PS: les methodes getConnexion et getStatement retournent la connexion ou le statement courant (respectivement), crées par la classe qui crée la connexion.
dimanche 2 février 2003 à 20:30:08 | Re : recuperer une connexion JDBC

Duss


salut,
regarde cette source elle devrait t'aider.
Tu peux adapter la source en y mettant des static.
C'est dur de t'aider sans voir ta classe connexionbase
mais effectivement, tu as peut etre oublié d'instancier des objets dans cette classe.
Duss
dimanche 2 février 2003 à 23:17:40 | Re : recuperer une connexion JDBC

tchiomimine

oui, j'ais deja fait un tour sur le site et j'avais vu ce source qui est très intéressant. Cependant, je n'arrive toujours pas à résoudre mon problème. En fait j'aimerais pour mon projet me connecter a la base au début et puis après utiliser cette connexion dans toutes mes classes ou je vais intérroger la base. J'ai du mal a voir comment réutiliser le code d'autres classes aisément. Voici le code de la classe connexion au cas ou ca peut aider et d'une des autres classes :

import java.sql.*;
import oracle.jdbc.driver.*;

class ConnexionBase
{
//Declaration des variables
private static Connection connx; //connx : connection de type Connection
private DatabaseMetaData meta; // meta : type DatabaseMetaData
private static Statement stmt; // stmt : type Statement

/*constructeur pour se connecter a la base*/
public ConnexionBase() throws SQLException
{
/* Chargement du driver jdbc. */
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
/* connexion a la base oracle */
try {
System.out.println("Essai de connexion ...");
connx = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:mabase", "login", "pass");
meta = connx.getMetaData();
System.out.println("Jdbc driver version is " + meta.getDriverVersion());
System.out.println("Connecte a la base.");
//Empeche l'auto commit
connx.setAutoCommit(false);
//Creation d'un objet Statement
stmt = connx.createStatement();
}
/* recuperation de l'exception */
catch (SQLException e)
{
System.err.println("impossible de se connecter : " + e.getMessage ());
}

}

//Retourne le Statement stmt
public static Statement getStatement()
{
return stmt;
}

//Retourne la Connexion connx
public static Connection getConnexion()
{
return connx;
}

//Ferme la connexion
public void close()
{
try {
connx.close();
System.out.println("fermeture de la connexion oracle.");
}
catch (SQLException e){}
}

public static void main(String[] args)//uniquement la pour tester la connexion
{
try { ConnexionBase c = new ConnexionBase();}
catch (SQLException e){}
}
}





import oracle.sql.*;
import oracle.jdbc.driver.*;

//La classe Utilisateur permet de verifier la présence de l'utilisateur dans la base de donnees Oracle,
//et d'afficher le nom correspondant

public class Utilisateur
{
//declaration des variable
String nomUser;
Connection connx;

//constructeur qui récupére la connexion a la base
public Utilisateur()
{
connx = ConnexionBase.getConnexion();
}

//methode qui recupere le nom de l'utilisateur
public String NomUtilisateur (String pseudoUser, String pwdUser) throws SQLException
{

//initialisation jdbc du preparedstatement
PreparedStatement Pstmt = connx.prepareStatement("select id_user, nom from utilisateur where pseudo = ? and password= ?");
Pstmt.setString(1,pseudoUser);
Pstmt.setString(2,pwdUser);

//Execution de l'instruction sql et traitement du resultat
ResultSet rSet = Pstmt.executeQuery ();
System.out.println("nom de l'utilisateur : ");
try
{
while (rSet.next ())
{
nomUser =rSet.getString(2);
}
return nomUser;
}
catch (SQLException e)
{
return "utilisateur incorrect ! Veuillez recommencer la saisie. ";
}
finally
{
//Liberer les ressources et Fermeture de la connexion
rSet.close();
Pstmt.close();
connx.close();
}
}
public static void main (String args[])//uniquement la pour tester
{
try
{
Utilisateur currentuser = new Utilisateur();
currentuser.NomUtilisateur("pseudo","pass");
}
catch (SQLException e)
{
System.err.println("L'authentification n'a pas aboutie.");
}

}
}



voila comme je suis pas très a l'ais avec les objets merci de m'aider !

-------------------------------
Réponse au message :
-------------------------------

>
> salut,
> regarde cette source elle devrait t'aider.
> Tu peux adapter la source en y mettant des static.
> C'est dur de t'aider sans voir ta classe connexionbase
> mais effectivement, tu as peut etre oublié d'instancier des objets dans cette classe.
> Duss
>
lundi 3 février 2003 à 09:07:24 | Re : recuperer une connexion JDBC

Duss

salut,

je vois 2 raisons possibles a ton problème,

1 - Essayes plutot un Class.forName à la place de ton DriverManager.registerDriver (ou met le en plus)

2 - Avant d'appeler ta methode statique, est ce que tu fais une instanciation de ta classe ConnexionBase ?
Car tu as mis un constructeur qui lui n'est pas une methode statique et c'est ici que tu fais ta connexion !!

Duss
lundi 3 février 2003 à 11:54:59 | Re : recuperer une connexion JDBC

Devpeur

Salut;

Les lignes modifiées sont sur fond blanc (il faut instancier un objet avant d'utiliser ses propriétés):


import oracle.sql.*;
import oracle.jdbc.driver.*;

//La classe Utilisateur permet de verifier la présence de l'utilisateur dans la base de donnees Oracle,
//et d'afficher le nom correspondant

public class Utilisateur
{
//declaration des variable
String nomUser;
Connection connx;

//constructeur qui récupére la connexion a la base
public Utilisateur()
{

ConnexionBase cb= new ConnexionBase();//instanciation
connx = cb.getConnexion();

}

//methode qui recupere le nom de l'utilisateur
public String NomUtilisateur (String pseudoUser, String pwdUser) throws SQLException
{

//initialisation jdbc du preparedstatement
PreparedStatement Pstmt = connx.prepareStatement("select id_user, nom from utilisateur where pseudo = ? and password= ?");
Pstmt.setString(1,pseudoUser);
Pstmt.setString(2,pwdUser);

//Execution de l'instruction sql et traitement du resultat
ResultSet rSet = Pstmt.executeQuery ();
System.out.println("nom de l'utilisateur : ");
try
{
while (rSet.next ())
{
nomUser =rSet.getString(2);
}
return nomUser;
}
catch (SQLException e)
{
return "utilisateur incorrect ! Veuillez recommencer la saisie. ";
}
finally
{
//Liberer les ressources et Fermeture de la connexion
rSet.close();
Pstmt.close();
connx.close();
}
}
public static void main (String args[])//uniquement la pour tester
{
try
{
Utilisateur currentuser = new Utilisateur();
currentuser.NomUtilisateur("pseudo","pass");
}
catch (SQLException e)
{
System.err.println("L'authentification n'a pas aboutie.");
}

}
}

lundi 3 février 2003 à 22:32:21 | Re : recuperer une connexion JDBC

tchiomimine

Salut !
oui c t ca ... en fait je voyais pas les choses comme il fallait. Je pensais que la conexion serait faites ds la classe ConnexionBase et pa ailleurs ... !!! c dure de penser en objet java en fait !!
merci :D



-------------------------------
Réponse au message :
-------------------------------

> salut,
>
> je vois 2 raisons possibles a ton problème,
>
> 1 - Essayes plutot un Class.forName à la place de ton DriverManager.registerDriver (ou met le en plus)
>
> 2 - Avant d'appeler ta methode statique, est ce que tu fais une instanciation de ta classe ConnexionBase ?
> Car tu as mis un constructeur qui lui n'est pas une methode statique et c'est ici que tu fais ta connexion !!
>
> Duss
jeudi 24 février 2005 à 11:03:27 | Re : recuperer une connexion JDBC


Cette discussion est classée dans : connexion, classe, heure, jdbc, connexionbase


Répondre à ce message

Sujets en rapport avec ce message

connexion JDBC [ par albator2004 ] Bonjour!!Voilà, j'ai créé une classe qui se conecte à une base oracle via jdbc selon le nom de la base passée en paramètre.Cependant, il se peut que l JAVA MYSQL ODBC-JDBC PHP [ par Jaliva ] jalivajalivajalivajalivaI need your help...Bonjour,je débute en java - j'ai réinstallé mon projet sur un autre serveur - j'ai recré connexion avec AS400 [ par progrima ] Slt je veux faire une connexion avec AS400, c koi la classe qui contient le driver qui permet la connexion avec cette classe!! Connexion JDBC avec une base distante [ par Wildelmenzah ] Salut tou'l mondeComment pourrai-je me connecter à une base de données distante (en réseau local) avec JDBC ?qu'est ce que je dois mettre dans l'url ? JDBC, driver ORACLE et Jbuilder6 [ par gehach ] Bonjour,J'ai besoins d'aide.Je suis étudiant et doit produire un projet JAVA sur JDBC.Je rencontre un problème : Je souhaite mettre en ligne le driver Enchainement d'écran [ par Aotearoa ] Ma question va sans doute sembler idiote et mal exprimée, mais que voulez-vous, je débute...J'ai créé une classe Lecture qui lit une base de donnée. D Connexion mySQL et NetBeans [ par everest01 ] Bonjour,J'essaie depuis un petit moment à connecter un programme Java et ma base de données mySQL. Dans un environnement JBuilder cela fonctionne parf mySQL et NetBeans : probleme de connexion [ par everest01 ] Bonjour,J'essaie depuis un petit moment de connecter un programme Java et ma base de données mySQL.Dans un environnement JBuilder cela fonctionne parf héritage multiple [ par developpatator ] Bonjour, Alors voilà: j'ai una appli composée d'une classe principale, et une classe Connexion qui regroupe toutes les méthode relatives à l'envoi/rec Connexion distante avec un proxy en utilisant la classe URL [ par licot ] Bonjour, J'utilise un logiciel que je dois modifier pour qu'il puisse passer un proxy. Avec comme contrainte l'utilisation de la classe URL, voici mo


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales