# Java > Gnral Java > Persistance des donnes >  Persistance : qu'est ce que c'est?

## Hell

Bonjour

J'essaye de me former  Hibernate, j'ai bien compris qu'Hibernate permettait de manipuler facilement des donnes d'une bdd sous forme d'objet (j'ai fait le tutoriel du site) mais  quoi correspond la persistance? J'ai post ici car a concerne pas que hibernate cette notion de persistance.

J'ai beau lire plusieurs cours diffrents, j'arrive pas bien  saisir ce qu'est la persistance. Est ce que c'est une sorte de cache en mmoire qui limite les accs  la base de donnes? Si oui, il y a pas de risque d'erreur si la base est utilise par plusieurs personnes en mme temps et que les donnes changement rapidement?

Merci d'avance

----------


## supermanu

La persistance est un concept et non quelque chose de technique.

De manire gnral si on persiste un objet, cela veut dire qu'on peut le rcuprer mme si on a stopp puis redmarr l'application ou carrment la machine. C'est ce qu'on appel la persistance.

Plus particulirement, en ce qui concerne Hibernate :
- tu as un objet que tu persiste en base, c'est  dire que des informations reprsentant l'objet vont tre enregistres en base de donnes.
- tu fais diffrentes manip (arrt de l'application, arrt du serveur, redmarrage...)
- au final tu es toujours capable de rcuprer un objet identique grce  hibernate et au mapping objet-relationel.

Au contraire, les informations qui sont contenues dans la request ou la session ne sont pas persistantes. Si tu arrtes ton application elles sont perdues.

Dernier point, la persistance n'est pas lie spcifiquement  une base de donne. On peut persister des informations ou des objets sur d'autres support (fichiers xml...)

En esprant avoir t assez clair  ::roll::

----------


## OButterlin

Pour complter les propos de supermanu :

Je dirais plutt que la persistance est un concept qui s'appuie sur quelque chose de technique.

JPA fixe les mthodes et les concepts utiliss de manire formelle, Hibernate reprsente UNE implmentation de JPA (TopLink une autre etc...)

D'un point de vue gnrale (comme l'a dit supermanu), a consiste  "sauvegarder" et  "restaurer" un "objet" sur un support (gnralement DB mais pas seulement) en toutes circonstances.
C'est videment un vu pieux, il existera toujours des circonstances qui feront que l'objet n'a pas t sauvegard (arrt brutal par exemple etc...)

----------


## Hell

D'accord merci, donc rien  voir avec le cache que j'imaginais...
En gros si cre moi mme un objet qui ne provient pas d'une base de donnes (de type Personne par exemple) et que je le sauvegarde avec ObjectOutputStream dans un fichier texte pour le restaurer plus tard, on peut dire que je fais persister mon objet?

----------


## OButterlin

> En gros si cre moi mme un objet qui ne provient pas d'une base de donnes (de type Personne par exemple) et que je le sauvegarde avec ObjectOutputStream dans un fichier texte pour le restaurer plus tard, on peut dire que je fais persister mon objet?


Oui, par la serialization

----------


## Hell

Ok alors j'ai compris  ::yaisse2:: 
Merci!

----------


## lamine87

Salut  tous,

Je voulais savoir si la notion de persistance est lie uniquement au concept objet ?
En d'autres termes, si je code avec un langage procdural comme le C par exemple et que je sauvegarde mes donnes dans une base de donnes ou dans un fichier, est ce qu'on peut dire que je fais de la persistance ?

----------


## DevServlet

> Salut  tous,
> 
> Je voulais savoir si la notion de persistance est lie uniquement au concept objet ?
> En d'autres termes, si je code avec un langage procdural comme le C par exemple et que je sauvegarde mes donnes dans une base de donnes ou dans un fichier, est ce qu'on peut dire que je fais de la persistance ?


Oui oui, persister n'est pas propre  un langage.

----------


## lamine87

> Oui oui, persister n'est pas propre  un langage.


Merci  ::pingoin2::

----------

