Docs

Imaginons que nous avons une application qui à besoin d’enregistrer le nom and the job de plusieurs personnes.

Nous pourrions imaginer une base de donnée comme celle-ci : Base MaBase
Table Personne : ‘prenom’, ‘nom’, ‘job’ — La clef primaire (PK) est composé de ‘prenom’ et ‘nom’
Table Job : ‘id’, ‘Description’ — La clef primaire (PK) est un ID auto-incrémenté

Voilà ce qu’il faut faire :
– Configurer Druide DB
– Ajouter : Insert
– Rechercher : Find / Find all / Find by Primary Key
– Mettre à jour : Update
– Effacer : Delete / Delete some / Delete all
– Transactions

Exemples de données :

Job
id Description
0 Développeur
1 DBA
2 Analyste
3 Architecte
Personne
Prenom Nom Job
Paul Dupont 0
Pascal Grounit 0
Andrée Paulette 3
Sylvain Tribode 1

Configuration

Le but est de crées un fichier de propriété en 5 étapes ultra-rapide, et vous pouvez commencer à coder.

Notre fichier d’exemple exemple.properties :

1- Indiquez où se trouvent vos fichiers sources. Ce chemin peut être relatif ou absolu. Utilisez toujours ‘/’ c’est plus simple que ‘\\’, et n’utilisez jamais un simple ‘\’ pour les chemins. Le dernier / n’est pas nécessaire :
filedb.gen.source = /home/toto/dev/monProject/src
or :
filedb.gen.source = C:/dev/monProject/src

2- Indiquez le nom de package pour les sources que je vais générer. J’ajouterai automatiquement ‘.dao‘ en suffixe :

3- Précisez la version de votre base de donnée. Mettez ce que vous voulez ça ne me regarde pas. Cette version pourra vous servir lorsque vous voudrez faire évoluer votre application et votre base base de façon automatique :

4- Entrez un niveau de backup. Si vous mettez :
0 ou moins, pas de sauvegarde de la base (peu sûr mais perf max).
1, la base sera sauvegardée à chaque fois qu’elle est modifiée (sûr mais moins performant),
2, la base sera sauvegardée toutes les 2 modifications,
42, la base sera sauvegardée toutes les 42 modifications,
– Et ainsi de suite…

5- Et on décrit la base de donnée :

On lui donne un petit nom :

Et on décrit les tables :
+ : sert à définir une clef primaire auto-incrementée

* : sert à définir une clef primaire composite (plusieurs colonnes)

Et voilà, votre base de donnée est prête à fonctionner, il ne reste plus qu’à générer les DAO (POJO et classe d’accès java).

Pour ça il faut appeler en ligne de commande là où se trouve votre fichier de propriété (il faut adapter les JARs en fonctions de vos répertoires) :

Et voilà tous vos DAO sont prêts à être utilisés.

Vous pouvez maintenant développer votre application !


Ajouter des données
Pour insérer des données il suffit de faire :

Job unJob = new Job();
unJob.setDescription( "Architecte senior" );
unJob.save();

Person unePersonne = new Person();
unePersonne.setPrenom( "Suzanne" );
unePersonne.setNom( "Durand" );
unePersonne.setJobid( unJob.getId() );
unePersonne.save();

Et voilà nous avons ajouté un nouveau travail (Job) et une personne qui fait ce nouveau travail.


Rechercher des données

Pour faire une recherche danss la base :

Personne individu = new Personne();
individu.setPrenom( "Suzanne" );
List results = PersonnePeer.find( individu );

Et voilà nous avons une liste des personnes dont le prénom est Suzanne. La liste est une List de Personne

Rechercher par clef primaire

S’il faut rechercher par clef primaire :

Job unJob = JobPeer.findByPK( "4" );

Et voilà le Job est chargé… Alors c’est pas beautifulement simple ça ?

Récupérer tous les enregistrement d’une table

List people = PersonnePeer.findAll();</pre>

Et il suffit alors d’itérer sur la List de Personne que l’on vient de charger…


Mettre à jour des données

Trouvons d’abord des données et mettons les à jour :

Job unJob = JobPeer.findByPK( "4" );
unJob.setDescription( "Geek" );
unJob.save();

Et voilà nous avons mis à jour un Job.


Effacer des données

Pour effacer des données il suffit de :

Job unJob = new Job();
aJob.setId( "2" );
if ( JobPeer.delete( unJob ) ) {
  System.out.println( "Job effacé..." );
} 
else {
  System.out.println( "Job non effacé..." );
}

Ce code va effacer l’enregistrment qui contenait le Job ayant pour ID ‘2’.
Cette méthode retourne un boolean pour confirmer que tout c’est correctement déroulé…

Effacer plusieurs enregistrements

List desJobs = new ArrayList(2);

Job myJob1 = new Job();
myJob1.setId("2");
desJobs.add( myJob1 );

Job myJob2 = new Job();
myJob2.setId("8");
desJobs.add( myJob2 );

JobPeer.delete( desJobs );

Ici aussi cette méthode retourne un boolean.

Tout effacer

JobPeer.deleteAll();

On supprime tous les enregistrements de la base Job.

Vous savez maintenant presque TOUT sur DruideDB, il ne vous reste plus qu’à voir les transactions


Transactions

Toutes les méthodes de DruideDB (insert, delete, update) peuvent prendre en parametre un boolean pour utiliser les transactions.
Voilà comment ça marche :

try {
  BankAccount accountA = new BankAccount();
  accountA.setAccount( "00354645A45BT" );
  accountA.setAmount( "100" );
  accountA.save( false ); // Change is only in memory
  
  BankAccount accountB = new BankAccount();
  accountB.setAccount( "RT5674YH76544" );
  accountB.setAmount( "-600" );
  accountB.save( false ); // Change is only in memory

  BankAccount accountC = BankAccountPeer.findByPK( "ERT463YSGSGR" );
  accountC.delete( true ); // Everything's OK : we delete and save all at this time
}
catch ( BankException be ) {
  // Here you want a rollback of all this changes
  BankAccountPeer.rollback(); // back to previous sate
}

Et voilà, difficile de faire plus simple…

Leave a comment

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.