03/09/2008
Data Access Object: un peu de souplesse dans un monde de brutes
Le Data Access Object (Abstract) Factory est ce que l'on appelle un 'Design Patern'.
'DAO Factory' fait le lien entre la couche métier et l'accès aux données d'une application.
Le but de cette technique est de rendre la couche métier indépendante de la manière dont
l'accès aux données se fait. Ainsi, il est plus facile de migrer d'un système de base de
données vers un autre, ou de changer la manière dont on veut accéder aux données.
La couche DAO permet d'instancier des objets d'accès aux données, pour chaque type
de données (utilisateur, commande, facture..). Concrètement, les méthodes proposées
par les objets d'accès aux données, pour la manipulation des données dans la couche métier,
ne dépendent pas du choix de stockage et d'accès aux données.
L'utilisation d'un shéma d'héritage pour la fabrique, fait que la couche métier
ne sait rien de la manière dont est fabriqué l'objet de connection.
Avec l'utilisation d'une interface pour les objets d'accès aux données, la couche métier
appelle les mêmes méthodes pour effectuer des opérations sur les données,
quelque soit la manière dont on accède aux données.
Le diagramme UML d'un DAO se présente ainsi:
(Insérer schema)
+ Chronologie pour une nouvelle DAO +
1) On crée une fabrique abstraite DAOFactory qui pourra être étendue/sous-classée.
Ajout d'une méthode, et de constantes statiques pour proposer le choix de la fabrique
2) Une sous-classe de DAOFactory (=fabrique) est créee pour chaque type de base de données, ou de connection.
Chaque fabrique permet de créer tous les objets DAO nécessaires à la manipulation des données
métier (ex: employé, utilisateur, commande, facture..)
3) Création d'une interface pour chaque classe d'accès aux données, qui regroupe
les opérations/méthodes disponibles (ex: create, update, delete, edit, list..)
4) Création des classes d'accès aux données qui implémentent l'interface (cf 3)
5) Intégration de la DAO dans le code applicatif:
- Nouvelle fabrique
- Nouvel objet DAO
- Appel de méthode sur l'objet DAO
Références:
- http://java.sun.com/blueprints/corej2eepatterns/Patterns/... > Data Access Object
- "Design Patterns: Elements of Reusable Object-Oriented Software" écrit par Gamma, Helm, Johnson, Vlissides
Auteur: Euan MATEO
12:42 Publié dans Bases de données | Lien permanent | Commentaires (0) | Envoyer cette note | Tags : java, design pattern, dao
10/08/2008
MYSQL via une ligne de commande DOS
Les bases de données MySql sont accessibles pas divers moyens. Il existe une très bonne interface d'administration développée en PHP: 'PHPMyAdmin'. Mais parfois, les limitations imposées par de tels outils, peuvent pousser à retourner vers une administration plus archaïque. C'est le cas, par exemple, lorsque l'on souhaite charger de gros fichiers de 'dump' sql de manière fiable.
En fait, la manière la plus fiable de travailler sur une base de données MySql, est d'utiliser la console MySql. Apres avoir lancé le service du serveur MySql 'mysqld-nt.exe', celle-ci est accessible en lançant l'exécutable 'mysql.exe'. Ces deux exécutables se trouvent dans le répertoire 'bin' de l'installation de MySql.
La suite présente les principales commandes à employer pour travailler avec MYSQL via une ligne de commande DOS.
- Connection
Si le serveur est déjà démarré ( .../mysql/bin/mysqld-nt.exe )
- En local:
Dans le répertoire .../mysql/bin lance mysql.exe via: 'mysql –u nom_utilisateur –p mot_de_passe' ( -p password si besoin )
Tu obtiens: 'Mysql > '
- Sur un autre serveur:
Dans le répertoire …mysqlbin lance mysql.exe via: 'mysql –h 158.67.144.67 –u root –p password' ( -p password si besoin )
- Opérations d'administration
Pour modifier le mot de passe d'un compte:
set password for root@localhost=password('mot_de_passe');
Pour effacer les comptes anonymes (pour raisons de sécurité):
Mysql > use mysql;
Mysql > delete from user where User='';
Mysql > delete from db where User='';
Créer un compte pour effectuer des opérations courantes:
Mysql > grant create, create temporary tables, delete, execute, index, insert,
Mysql > lock tables, select, show databases, update
Mysql > on *.*
Mysql > to username@server identified by 'password';
Pour créer un compte utilisateur sur une base de données:
Mysql > create user nom_user@host_name identified by 'password';
Mysql > grant all on nom_database.* to nom_user;
- Les lignes de commandes
Rq: ne pas oublier le ';' à la fin de chaque ligne
Pour obtenir de l'aide:
Mysql > help;
Pour sortir
Mysql > Quit
Pour lister les databases
Mysql > show databases ;
Pour choisir une database
Mysql > use nom_database
Pour lister les tables de cette BD
Mysql > show tables ;
Pour voir une decription d'une table:
mysql> desc nom_table;
Pour executer un script sql via un fichier
Mysql > source nom_du_fichier ;
Pour créer une sauvegarde de la base (dump ou backup), directement depuis la fenêtre de commande DOS:
mysqldump -u root -proot nom_de_base > nom_de_fichier.sql
Pour créer une database
mysql> drop database if exists menagerie;
mysql> CREATE DATABASE menagerie;
Pour créer une table - utilisez une requête CREATE TABLE pour spécifier la structure de votre table :
Exemple
Mysql > CREATE TABLE animal (nom VARCHAR(20), maitre VARCHAR(20),
Mysql > espece VARCHAR(20), sexe CHAR(1), naissance DATE, mort DATE);
Pour voir la description de la table
mysql> DESCRIBE animal;
Pour modifier une table:
mysql> ALTER TABLE animal ADD couleur varchar(15);
ou
mysql> ALTER TABLE animal MODIFY colonne_a TEXT;
Pour lister les droits des utilisateurs pour une base:
mysql> use mysql;
mysql> select * from schema_privileges;
Référence:
- Mysql tutorial by Sams publishing
Auteur: Euan MATEO
14:13 Publié dans Bases de données | Lien permanent | Commentaires (0) | Envoyer cette note | Tags : mysql, sql, console, dos, commande
04/03/2008
Remplacer la conception d'une base 'notes'
J'ai à ce jour indentifié deux méthodes pour remplacer la conception d'une base 'Lotus notes'. Remplacer la conception d'une base, signifie que l'on change le modèle dont elle dépend pour la définition de ses éléments de structure.
Cette opération permet de modifier un modèle (template) en environnement de développement ou de production.
-
'Remplacer Conception'
Fichier > Base de documents > Remplacer conception
Choisir le serveur sur lequel se trouve le modèle à utiliser, et le nom du modèle.
RQ importante : Cocher 'Masquer formules et Lotus Scripts' pour ne pas laisser l'accès aux éléments de conception et les bibliothèques de scripts. Ainsi, 'Création > Concevoir' n'apparait plus dans le menu, les éléments de structure et les bibliothèques de scripts sont masqués. De plus les éléments de conception ne sont pas visibles au niveau de l'onglet 'conception' du panneau de propriétés de la base.
-
'Actualiser Conception'
Cette méthode ne peut être utilisée que si les éléments de conception ne sont pas masqués. Dans ce cas, les propriétés du modèle maître ne seront pas accessibles.
Dans un premier temps, il faut modifier le nom du template dont la base hérite, dans les propriétés de la base notes.
Fichier > Base de documents > Propriétés
Onglet 'Conception' > panneau 'Héritage'
On peut alors changer le nom du modèle par le nouveau modèle.
Une fois le changement de modèle effectué, il reste à actualiser la base pour qu'elle prenne en compte le nouveau modèle. Ainsi, la base notes va mettre à jour ses propres éléments de structure conformément au modèle choisi.
Fichier > Base de documents > Actualiser conception
Auteur: Euan MATEO
14:20 Publié dans Bases de données | Lien permanent | Commentaires (0) | Envoyer cette note | Tags : lotus, notes, domino, informatique, modèle, template, ibm
Extraire un modèle d'une base 'Notes'
Il faut pour cela faire une copie de la base en question.
Fichier > Base de documents > Nouvelle copie... ( en FR )
- Préciser le serveur qui hébergera la nouvelle copie
- Préciser un titre ( qui est aussi le nom visible par les utilisateurs )
- Préciser le nom du fichier, avec une extension NTF
- Puis cocher "Conception de la base uniquement"
Rq : Il n'est pas indispensable de cocher "Liste de contrôle d'accès", pour la copier, car elle pourra être modifiée plus tard.
Il faut maintenant paramétrer cette nouvelle copie pour qu'elle devienne un 'modèle maître' (master template). Pour celà:
Base de documents > Propriétés
Onglet 'conception'. Il faut alors cocher 'le fichier de la base ets un modèle maître', puis donner le nom du modèle. Un copier-coller du titre du modèle, présent dans l'onglet tout à gauche de la boîte de propriétés fait très bien l'affaire.
On peut désormais utiliser ce modèle pour définir les éléments de structure d'une base notes par héritage depuis ce modèle (ou template).
Rq : Les base 'Lotus Notes' classiques ont pour extension 'NSF'. Les modèles ont pour extension 'NTF'.
Auteur: Euan MATEO
14:02 Publié dans Bases de données | Lien permanent | Commentaires (0) | Envoyer cette note | Tags : lotus, notes, domino, informatique, modèle, template, ibm