Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Persistance
Persistance Forum d'entraide pour la persistance en Java : base de donnée, xml, mapping orienté objet, ... Posez vos questions sur iBatis, JDO, XmlBeans, Castor, JAXB, XStream, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/09/2012, 21h52   #1
tunis71187
Membre régulier
 
Inscription : novembre 2007
Messages : 305
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 305
Points : 98
Points : 98
Par défaut Utilisateur connecté à la base

Bonjour,

J'ai une application qui utilise une base MySQL, j'ai rencontré un problème suite à l'idée de journaliser les opérations réalisées sur mes tables.
Le problème c'est comment je peux avoir l'utilisateur réalisant une telle opération (dans une session).

Merci pour les propositions.
tunis71187 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2012, 09h16   #2
FSiebert
Membre Expert
 
Homme Florent SIEBERT
Administrateur de base de données
Inscription : juin 2012
Messages : 528
Détails du profil
Informations personnelles :
Nom : Homme Florent SIEBERT
Âge : 24
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Conseil

Informations forums :
Inscription : juin 2012
Messages : 528
Points : 2 288
Points : 2 288
Bonjour,

Je suppose qu'il ne s'agit pas du user MySQL (l'application se connecte toujours avec le même utilisateur) ?
C'est un user Windows que vous voulez récupérer ? Le user de votre application ?

Détaillez un peu
FSiebert est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2012, 14h30   #3
tunis71187
Membre régulier
 
Inscription : novembre 2007
Messages : 305
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 305
Points : 98
Points : 98
Merci pour la réponse.

Je cherche comment récupérer le user de l'application.
J'ai une table d'utilisateurs, je veux l'identifiant de l'utilisateur connecté à l'application.
tunis71187 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2012, 14h35   #4
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 671
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 671
Points : 25 525
Points : 25 525
Envoyer un message via MSN à CinePhil
Ben il faut que ce soit l'application qui connaisse cette information. Le SGBD ne pourra jamais le savoir tout seul !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2012, 15h53   #5
tunis71187
Membre régulier
 
Inscription : novembre 2007
Messages : 305
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 305
Points : 98
Points : 98
comment je peux faire ça ?
tunis71187 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2012, 15h58   #6
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 671
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 671
Points : 25 525
Points : 25 525
Envoyer un message via MSN à CinePhil
Classiquement, l'identifiant de l'utilisateur de l'application est un truc qu'on balade de page en page et/ou en session et/ou en cookie car on a souvent besoin de lui pour vérifier les droits de l'utilisateur sur le contenu affiché ou sur les actions possibles de la page affichée ou justement pour attacher du contenu saisi à l'utilisateur qui l'a saisi.

Mais ça concerne plus le langage applicatif que MySQL qui ne fait que stocker des données.

Quel langage utilisez-vous pour développer l'application ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2012, 22h11   #7
tunis71187
Membre régulier
 
Inscription : novembre 2007
Messages : 305
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 305
Points : 98
Points : 98
Merci pour la réponse.

J'utilise le langage Java pour le développement d'une application Desktop. L'utilsateur est autorisé à se connecter après correspondance entre les informations saisies (login et mot de passe) et celles enregistrées dans la base de données
tunis71187 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2012, 17h45   #8
Népomucène
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 1 382
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 1 382
Points : 2 327
Points : 2 327
Comme il s'agit d'une application en réseau local, le plus simple :
après connexion par l'utilisateur, enregistrer son nom dans une variable String "public static" de la classe qui sert à la connexion.
Si la classe s'appelle par exemple "MyConnexionClass" et la variable "USER" alors on accède depuis n'importe quel endroit de l'application avec
MyConnexionClass.USER
__________________
·· −· −−· ·· ·−· ··− −− ·· −− ··− ··· −· −−− −·−· − ·
· − −·−· −−− −· ··· ··− −− ·· −− ··− ·−· ·· −−· −· ··
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2012, 20h29   #9
tunis71187
Membre régulier
 
Inscription : novembre 2007
Messages : 305
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 305
Points : 98
Points : 98
Merci Népomucène pour la réponse,

je n'ai pas compris bien ce que tu as écrit,

tous les utilistateurs de l'application se connecte à la base de données par un seul identifiant par exemple "root", mais j'ai enregistré les utilsateurs dans une table pour les identifier sur un écran avant de les permettre de manipuler les données de la base.

Ici je veux si l'utilisateur x est identifié je cherche comment récupérer cette information?
tunis71187 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2012, 00h01   #10
Népomucène
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 1 382
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 1 382
Points : 2 327
Points : 2 327
tu déclares la variable USER comme public static dans la classe de connexion
(ou une autre classe de l'application)

l'utilisateur "Arthur" est identifié au moment de sa connexion
tu fais :
MyConnexionClass.USER = "Arthur"

plus tard quand tu dois identifier qui a fait quoi en enregistrant des données,
par exemple "qui a modifié une fiche client"
tu peux inclure le nom de l'utilisateur dans ta requête UPDATE
en mettant à jour un champ contenant le nom de l'utilisateur
ce nom d'utilisateur tu le récupères dans MyConnexionClass.USER
__________________
·· −· −−· ·· ·−· ··− −− ·· −− ··− ··· −· −−− −·−· − ·
· − −·−· −−− −· ··· ··− −− ·· −− ··− ·−· ·· −−· −· ··
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2012, 14h49   #11
tunis71187
Membre régulier
 
Inscription : novembre 2007
Messages : 305
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 305
Points : 98
Points : 98
Est ce que vous pouvez me donner un exemple du code pour la classe MyConnexionClass pour que je puisse comprendre ton idée.

Merci.
tunis71187 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2012, 10h42   #12
Népomucène
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 1 382
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 1 382
Points : 2 327
Points : 2 327
Tu as déjà un écran pour que l'utilisateur puisse se connecter
tu récupère donc son nom pour contrôler son existence dans la base (en concordance avec le mot de passe)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class MyConnexion {
....
méthodes diverses
...
private void userControl(String nomUtilisateur, String motDePasse) {
  ...
  contrôle dans la base de nomUtilisateur + motDePasse
  ...
  // tu ajoutes : 
  USER = nomUtilisateur ;
}
public static String USER;     // USER est visible dans toute ton application
}
dans une autre classe qui enregistre, par exemple, une fiche article :
Code :
1
2
String sql = "INSERT INTO Articles (Id, Label, User) VALUES (123,'bidule','" + MyConnexion.USER +"')";
c'est le principe général de récupération de l'utilisateur en cours
(pour le code réel il faut naturellement, utiliser des PreparedStatement pour les requêtes)
__________________
·· −· −−· ·· ·−· ··− −− ·· −− ··− ··· −· −−− −·−· − ·
· − −·−· −−− −· ··· ··− −− ·· −− ··− ·−· ·· −−· −· ··
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2012, 23h51   #13
tunis71187
Membre régulier
 
Inscription : novembre 2007
Messages : 305
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 305
Points : 98
Points : 98
Merci Népomucène pour le code, j'ai essayé avec ce code mais je n'arrive plus à accéder au variable "USER" par la classe de connexion!!!!!
tunis71187 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2012, 09h55   #14
Népomucène
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 1 382
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 1 382
Points : 2 327
Points : 2 327
J'ai mal rédigé la déclaration de classe. Il faut la déclarer public :
Code :
public class MyConnexion { ...
si tu n'y arrives toujours pas, poste le code où ça coince.
__________________
·· −· −−· ·· ·−· ··− −− ·· −− ··− ··· −· −−− −·−· − ·
· − −·−· −−− −· ··· ··− −− ·· −− ··− ·−· ·· −−· −· ··
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h06.


 
 
 
 
Partenaires

Hébergement Web