IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Java et "base de données"


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 68
    Par défaut Java et "base de données"
    Bonjour, le titre n'est pas clair, je sais mais je ne sais pas comment tourner le problème...

    Voilà, en fait je suis en train de développer une application en java pour ma cousine qui va être psychologue. Pendant les vacances, je cherchais des sujets pour m'entrainer, car je suis étudiant en IUT Informatique en 2e année, et je commence cette année le java graphique, donc j'ai voulu prendre de l'avance !!

    Mon projet avance à petit pas, normal, je débute quand même et puis les cours viennent de reprendre mais c'est pas pressé...
    Le système est que j'ai créé un tableau de Personne, afin d'y ranger des Personne(patients). Jusque là je peux créer et initialiser tout ceci en graphique pas de problème ça fonctionne ^^
    Le truc c'est que bien sûr une fois le programme fermé, le tableau en mémoire est détruit, donc, il faudra le ré-ouvrir et pour ça j'ai pensé faire une "base de donnée" à l'aide d'un fichier !!

    Pour le moment, j'utilise un fichier .txt, j'ai sérialisé ma classe Personne pour l'enregistrer, cependant au moment de la restauration je peux restaurer que la première en tapant la ligne...Car voilà le problème je n'ai aucun moyen de savoir combien de fois je dois utiliser la méthode "readObject()" car au début mon programme ne sait pas combien de personne sont enregistré dans mon fichier texte !!

    C'est pourquoi j'aimerais savoir si vous avez une solution, j'ai éventuellement pensé à utilisé le système des base de données, donc une clé du genre "ID"(Personne 1, Personne 2,....) où il y aurait un ID dans chaque personne qui correspondrait à son emplacement dans le tableau...

    Vous en pensez quoi ?


    PS:
    De plus, j'en profite pour une petite question supplémentaire, ce fichier possédant des données sensibles, je pense qu'il faudrait mieux le crypter...et donc quel algo devrais-je favoriser ?

    Je vous remercie d'avance, si vous avez besoin de précision sur mon projet n'hésitez pas à demander !!

  2. #2
    Membre confirmé

    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut MySql simple et efficace
    Bonsoirs,

    MySql est un SGBD gratuit et efficace surtout pour les bases de données simples. Voire les tutoriels et les faq dans la partie SGBD/MySQL.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Il existe un système de gestion de base de données spécialisé pour Java (et écrit en Java). Il ne s'agit pas d'un serveur indépendant, mais d'une bibliothèque que l'on ajoute simplement à son projet et qu'on utilise facilement, comme toute implémentation de JDBC. Ce SGBD s'appelle HSQLDB.

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 68
    Par défaut
    D'accord je vais voir ça !!
    Mais je ne veux pas une base de données externe, je veux qu'elle reste sur le pc...En clair ceci doit fonctionner sans connexion internet, donc est ce que ces solutions répondent à ce critère ?

  5. #5
    Membre confirmé

    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut [MySql]
    Salut,

    Oui les deux solutions répondent à ces critères, Vous n'avez pas besoin d'une connexion internet.

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 68
    Par défaut
    D'accord je vous remercie !!

    Et je suppose que cette base de données sera enregistrer dans un fichier, à moi de le placer, donc surement à la racine, mais si jamais je veux le chiffrer, quel algo devrais-je employer ?

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pourquoi tu veux chiffrer le fichier de la db?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Par défaut
    Citation Envoyé par dingoth Voir le message
    Il existe un système de gestion de base de données spécialisé pour Java (et écrit en Java). Il ne s'agit pas d'un serveur indépendant, mais d'une bibliothèque que l'on ajoute simplement à son projet et qu'on utilise facilement, comme toute implémentation de JDBC. Ce SGBD s'appelle HSQLDB.
    Le créateur de HSQLDB s'est lancé dans la création d'une nouvelle base de données nommée H2: http://www.h2database.com
    HSQLDB n'est plus mis à jour il me semble (à vérifier) donc si jamais tu penches pour cette solution je te conseille de voir du côté de H2 plutôt.

    Tu as juste à ajouter un fichier jar à ton projet pour pouvoir utiliser H2, ensuite tu n'as aucunement besoin d'une connexion internet pour y avoir accès.

    H2 est plutôt performant, je pense que ça peut être une bonne solution pour ton projet.

    Bon courage

  9. #9
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 68
    Par défaut
    @tchize: c'est parce que la table va contenir des infos sur des patients, et donc bah je trouve que ça serait mieux quand même, car après il va y avoir normalement, j'aimerai bien, mettre un espacede "notes" pour l'étude de chaque consultation, et donc comme je disais c'est proche du secret médical et vu que c'est qu'un fichier et que c'est informatisé, je pense que c'est des données sensibles, notamment qu'en plus il y aura des coordonnées de personnes tel que nom, prénom, adresse, mail...

    Enfin voilà,...pourquoi cette question ? Vous pensez que c'est inutile ?

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Bah les protections du système d'exploitation sont censées être suffisantes, à moins que tu ne craignes un vol d'ordinateur, ou une intrusion.

  11. #11
    Membre confirmé

    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Salut,

    Les données sont sécurisés pour deux raisons:

    1/ Votre application est exécuté sur un seul poste (autonome)i.e elle n'est pas connecté ni à l'internet ni à l'intranet.

    2/ Vous pouvez créer un mot de passe (recommandé) pour accéder à la base de donnée.

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par sinpay Voir le message

    2/ Vous pouvez créer un mot de passe (recommandé) pour accéder à la base de donnée.
    Le mot de passe ne protegera rien du tout car la base de données est locale. Le fichier de db suffira à récupérer les données.

    Soit c'est un PC "public", il y a donc risque de vol du fichier de base de donnée pour chaque personne qui utilise le PC. Dans ce cas là, soit tu déplace la base de donnée en extérieur sur un PC sécurisé, soit tu oublie les base de donnée et tu crée un fichier dans lequel chaque enregistrement est crypté en utilisant le mot de passe du médecin. Pour cette dernière option, tu va devoir lire beaucoup de littérature au sujet de la cryptographie pour ne pas faire n'importe quoi!

    Soit c'est un PC "privé", dans ce cas si tu crains juste le vol du disque dur, tu peux utiliser une partition encryptée (qui nécessite un mot de passe au démarrage). Mais je pense pas que ce soit indispensable. Après tout, pour les dossier papiers, si quelqu'un est décidé à les voler en entrant par effraction dans le batiment, rien ne l'y en empechera.

  13. #13
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 68
    Par défaut
    Le prog sera utilisé sur un pc portable, donc transportable et bon, un pc portable peut se voler vite en plus c'est pour ma cousine mais je pense que le prog pourra servir à d'autres peut être donc je ne sais pas, il y a toujours un risque !!
    Et puis le pc est privé, et donc à la fin chez elle il est connecté à internet, peut être même à son taff, je ne connais pas son lieu de travail !!

    Le truc c'est que j'avais pensé, le faire dans un fichier puis le crypter..j'ai déjà lu pas mal de truc sur la crypto, ça m'intéresse et j'ai testé un peu mais en effet entre un test perso sans danger et crypter des données sensibles faut pas faire d'erreurs...

    Le truc c'est que par fichier je ne sais pas comment savoir le nombre de personne qui seront enregistré...j'ai commencé par faire ça avant d'utiliser une vrai base de données...surtout pour enregistré des objets je trouvais ça pratique, je ne sais pas encore comment je vais faire par rapport à la base de données pour les restaurer...

    D'ailleurs, j'avais pensé à faire un fichier, puis bah le compresser s'il était trop gros puis le crypter, mais bon c'est trop contraignant et surement inutile !!

    Je ne sais plus comment faire du coup...

    Ce qui est sûr c'est que c'est sûrement un pc privé, mais qui aura accès à internet et qui va se déplacer par les transports, donc risque de vol plus élevés...
    C'est pas les informations en elles qui me dérangent mais plus les données adresses et tout car si un patient à des troubles ou autres et que il y a sont adresse faudrait pas que ça permettent un cambriolage ou autre...(même si je me barre en cacahuètes je trouve ça quand même vrai !!)

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si tu veux crypter le fichier, tu va pouvoir oublier les db embarquées, aux dernières nouvelles elles ne supportent pas le cryptage. Certe tu pourrais crypter 'a postériori' la db après son shutdown, mais tu cours le risque qu'en cas de crash du logiciel ou d'arrêt brutal de la machine, les fichiers décryptés trainent en mémoire.


    Pour le cryptage en lui même, le plus "simple" est de prendre un des algorithme supporté par la java cryptography api. Tu utilise la techinque "classique" de l'encryptage de document: créer une paire de clé publique/privée que tu stocke dans un repository protégé par un mot de passe utilisateur (keystore), tu utilise la clé publique pour crypter une clé symétrique, clé symétrique que tu utilise pour crypter ton fichier de données.

  15. #15
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 68
    Par défaut
    euh...ok...je vais voir ça, déjà je pense que je vais "finir" le prog avant de m'atteler à crypter le fichier...

    Puis, j'ai toujours le même problème, le nombre de patients pour la restauration, mais je pense que je vais le faire à la barbare, donc en gros avant la fermeture je créerai un fichier où je mettrai le nombre de patients, puis au moment de la réouverture je ferai tous simplement une lecture de ce fichier puis la lecture du fichier "base de données" !!

    Par contre pour le cryptage, je verrai bien comment je ferai, j'aimerai bien me faire quelques tuto avant de me lancer dans un truc sérieux, donc je pense qu'il y en a sur le site ou même ailleurs donc je vais rechercher ça puis m'y mettre

    Mais, pour le moment, ma base de données contient au max 10000 personnes, j'ai trouvé que c'était une taille raisonnable ni trop grande si le prog est utilisé sur un petit pc ni trop petite...
    Car je me dis que les patients peuvent se mettre à la chaine, par exemple les anciens patients !! Mais faudra pas que j'oublie de mettre le nombre de patients restants dans ce cas... :s

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 80
    Par défaut Meilleure base actuelle :)
    lu,

    Je pense que cette base de données te conviendra le mieux (cryptage, embarqué, etc...).

    H2

    @+

Discussions similaires

  1. Réponses: 12
    Dernier message: 23/02/2011, 16h10
  2. [DOM] [JAVA ou PHP] Base de donnée XML
    Par lulu_31 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 06/10/2008, 16h17
  3. java et le bases de données
    Par anikashow dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 30/04/2008, 12h08
  4. Java et les Bases de données
    Par Clorish dans le forum JDBC
    Réponses: 6
    Dernier message: 09/10/2007, 21h24
  5. Comment on connecte un programme Java avec une base de données FireBird?
    Par Gomez dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 16/02/2007, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo