Writing /home/infogasy/domains/wiki.infogasy.net/public_html/data/cache/e/e776a809e50f7700f36a061ed8dd7b03.xhtml failed

Fanorenana Informatika mampiasa ny tetika POJO faha IV

Mikasika ny mpitahiry maharitra karazana « Objet » : Db4Object :

Manomboka eto @ny lahasoratra faha-4 dia hiresaka indray isika ny @ny mpitahiry maharitra an’i Db4Object Inc. Ny antsipiriany mikasika azy io alou dia tsara angamba raha mitsidika kely ny tranonkalan-dry zareo ao @ny www.db4o.com de misoratra anarana fa tena mivoatra be @izao fotoana izao ny mikasika an’io haitao fitehirizana io …

Db4Object moa dia kilasiana ao anatin’ny antsoina hoe : OODBMS (Object Oriented Database Management System) , raha ohatra ireo mahazatra hatrizay dia ny RDBMS na ny mpitahiry miorina @ny teoria “relationnel” na « ensembliste » … Raha tsorina dia tsotra ny OODBMS : Ny fandefasana avy hatrany ireo « objets » kirakiraina anaty laminasa ho voatahiry @iny endriny iny ihany any @ilay andalan-tohatra manao ny fitehirizana…

Tsara marihina mantsy fa misy fomba iray nampiasaina ary mbola ampiasaina @izao fotoana izao @io lafiny io dia ny fanaovana fampifandraisana ny endrika « objets » ho lasa miendrika « relation = table » vao alefa anaty mpitahiry mahazatra « relationnel ». Ireny moa no antsoina hoe fitaovana ORM (Object/Relational Mapping) ; ary inoana fa ho voasolo ny OODBMS ireo fitaovana ireo atsy ho atsy ao anaty tontolon’ny mpitrandraka laminasa mampiasa ny « objets » …

Fotokevitra « container » :

Raha jerena akaiky ny rafitra namoronana ny Db4Object dia miorina @ny fampiasana mpitahiry mandalo voatondro mazana hoe : « container »-na objets, ka rehefa ho alefa @ny fitehirizana maharitra ireo objets ireo dia hita fa mampiasa ny kilasy fototra « RandomAccessFile » anaty « lib strandard » ry zareo … ny manodidina izany fotokevi-dehibe izay dia fanatsarana ny fitrandrahana ny « container » sy ny teknika fanoratana ireo objets tanaty container ho voatahiry maharitra … Ny mpanoratra manokana dia efa hatry ny version 4 an’io Db4Object io no nisafidy ilay làlana fitehirizana OODBMS. Tsara marihina fa efa 6.1 izao ny version stable „officielle“, ary 6.3 ny version production. Efa mivoaka ny version 6.4 izay ho lasa „officielle“ hono afaka 3 volana eo, satria io no hisy tsambikina tekinolojia hitondra hatsarana @ny fampiasana ny MTOC (Multi-Transaction Object Container).

Fampiasana ny Db4Object :

Tsotra be ny amin’io satria raha handraya ohatra raika isika @ny objet Post :

Post post1 = new Post(….);

Azontsika alefa anaty tahiry Db4Object io @ny fomba fanoratra :

……
ObjectContainer container = Db4o.openFile(‘’TahiryDb4o.yap‘’) ;
container.set(post1) ;
container.close();
…..

de vita kabary ny @ny asa fandefasana anaty tahiry ny objet ’’post1” eto. Rehefa te-haka anaty tahiry indray isika dia :

…..
ObjectContainer container = Db4o.openFile(‘’TahiryDb4o.yap‘’) ;
Post post2 = new  Post();
ObjectSet result = container.get(post2) ;
while(result.hasNext())
	System.out.println(result.next().toString());
container.close();
…..

Io zao dia mampiasa ny antsoina hoe : QBE (query by example) = ny objet rehetra karazana Post no voatsoaka tanaty container amin’io fomba io io satria izany no tiana lazaina rehefa maka “example”-na modely Post post2 isika eto. Rehefa hanao fanovana objet raika efa tanaty container isika de :

….
ObjectContainer container = Db4o.openFile(‘’TahiryDb4o.yap‘’) ;
Post post2 = new  Post(“P001”,null,null,null,0);
ObjectSet result = container.get(post2) ;
if(result.hasNext())
post2 = (Post)result.get(0);
post2.setTitre(“Tahiry Db4o…”);
post2.setDatePost(new Date());
post2.setCOntenu(“BLA, BLA …”);
post2.setNiveau(2) ;
container.set(post2) ;
container.close()
…..

Rehefa hamono objet raika indray isika dia :

….
ObjectContainer container = Db4o.openFile(‘’TahiryDb4o.yap‘’) ;
Post post2 = new  Post(“P001”,null,null,null,0);
ObjectSet result = container.get(post2) ;
if(result.hasNext())
{
post2 = (Post)result.get(0);
container.delete(post2);
}
container.close()
……

Hita ami’ireo andrana efatra ireo zany fa tsotra dia tsotra ary mazava be toy ny andro be lohataona (@ny mpanoratra laminasa @ny tetika « objet ») ny fomba fanao raha hanao ireo asa CRUD (Create, Read, Update, Delete) anaty tahiry maharitra Db4Object isika … Ny karazana fika rehetra @io lafiny io dia tsara angamba ny manaraka avy hatrany ny fampianarana omen’i Carl Rosenberg ao anaty fonosana ofisialy Db4Object alainao @ny tranonkala. Io tary io moa no « Ray » niteraka an’i Db4object …

Hasehontsika @ny sary etsy ambany ny rafitra ametrahantsika izay ilaina rehetra ao anaty Eclipse ireo vondrona hilaina a@io lafiny “modely tahiry” araka ny tetika MSL-POJO hataontsika. Ho hazavaina miandalana eny ihany ny @io firafitra io, fa ny asehontsika eto dia ny endriny tsotra mora hijerena ny tetika ankapobeny rehefa entina ao anaty laminasa MSL-POJO ny Db4Object …

Fanamarihana : misy fiovana kely @ilay tany aloha ny fipetrahan’ireo kilasy sasany sy ny anarana methodes koa, mba natao hanakaiky kokoa izay voarakitra anaty fonosona ofisialin’ny MSL-POJO. Marihina moa manomboka eto fa ny fonosana MSL-POJO izany dia natao mba ho rafitra fanaovana laminasa mitrandraka fonosana hafa voafehin’ny lalànan’ny “open-source” na “freeware”; any aoriana kely zany rehefa tafatombina tsara i MSL-POJO dia tokony ho toa izany koa izy …

:wiki:pojo04_01.png

Fanazavana kely:

Mazava ho azy ary fa hampiasa ny API-ny Db4Object isika : db4o-6.3-java1.2.jar natao ho an’ny Java 2 latsaky ny version 1.4.x io fonosana ampiasintsika io, fa raha mampiasa Java ambonin’ny 1.4.x dia hafa no alaina, na koa mampiasa DOTNET ianao … Omentsika ambany ny famaritana ilay interface : IServicePersistent.java. Eto izany dia efa misy ny “implementation” tsotra an’io interface io ka manakaiky izay voarakitra anaty fonosana ofisialy MSL-POJO no ho ao anaty kilasy ServiceDb4Object.java sy UtilDb4.java = kilasy utilitaire. Lava be io “implementation” io, fa mba ho mora vakiana dia izay methods ilaintsika ihany anaty andrana no haseho ny source-ny:

Kilasy ServiceDb4Object : 
public class ServiceDb4Object extends ModeleUCM implements IServicePersistent
{}
 
package agir.msl;
 
import java.util.List;
import java.util.Vector;
 
public interface IServicePersistent 
{
	/** retourner le nombre d'objets dans la base de donnée 
	 * @return le nombre d'objet courant dans la base
	 */
	 	public int getNbObjet(); 
 
	/** Création instance unique de la classe modèle dans la BDO
	 * @param objMbre - l'instance à enregistrer dans la base
	 * @param keyIndex - identifiant
	 * @param keyName - le nom de l'identifiant
	 * @return 	l'instance du modèle créé, sinon une valeur de référence null
	 */
		public boolean creerObjetModele(Object objMbre,
					      String keyIndex,
						String keyName); 
	/** Suppression instance de la classe modèle dans la BDO
	 * @param idObject - l'identifiant de l'objet à supprimer
	 * @param keyName - le nom de l'identifiant
	 * @return 	true si réussie, sinon false
	 */
		public boolean supprimerObjetModele(String idObject,
						String keyName);
	/** Retourner l'objet modele dans la BDO, suivant l'identifiant passé en paramètre
	 * @param keyIndex - la valeur de l'identifiant
	 * @return l'objet modèle trouvé, sinon objet null
	 */
		public Object getObjectModele(String keyIndex); 
	/** Retourner l'objet modele dans la BDO, suivant l'IDs interne dans le container
	 * (pour Db4o seul)
	 * @param idObject - la valeur de l'IDs de l'objet
	 * @return l'objet modèle trouvé, sinon objet vide
	 */
		public Object getObjectModele(long idObject); 
	/** 
	 * Mise à jour d'un objet modèle identifié par son identifiant
	 * la modification de l'identifiant de l'objet sera non-autorisé
	 * @param keyName - le nom de l'identifiant
	 * @param keyIndex - l'identifiant de l'objet à modifié
	 * @param obj - la valeur de l'objet de modification 
	 * @return true si réussie, sinon false
	 */
		public boolean modifierObjetModele(	Object obj,
						String keyIndex,
						String keyName);
	/** 
	 * Mise à jour d'un objet modèle identifié par son identifiant
	 * la modification de l'identifiant de l'objet sera non-autorisé
	 * @param keyIndex - l'identifiant de l'objet à modifié
	 * @param keyName - le nom de l'identifiant
	 * @param obj - la valeur de l'objet de modification
	 * @param listName - liste des noms d'attributs dont les valeurs ne seront pas modifiées 
	 * @return l'objet modifié
	 */
		public boolean modifierObjetModele(	Object obj,
						String keyIndex,
						String keyName,
						List listName);
	/** 
	 * Mise à jour d'un objet modèle identifié par son identifiant
	 * la modification de l'identifiant de l'objet sera non-autorisé
	 * @param keyIndex - l'identifiant de l'objet à modifié
	 * @param keyName - le nom de l'identifiant
	 * @param obj - la valeur de l'objet de modification
	 * @param listName - liste des noms d'attributs dont les valeurs seront modifiées 
	 * @return l'objet modifié
	 */
	public boolean modifierAttribObjetModele(	Object obj,
					String keyIndex,
					String keyName,
					List listName);
	/** 
	 * Tester si la valeur de champ d'un objet passé en paramètre existe dans 
	 * la base de donnée Objet
	 * @param cleAttrib - la valeur du champ de l'instance à trouver
	 * @param nomChamp - designation du champ declaré dans cette classe 
	 * @return true si existe dans la base, sinon false
	 */ 
	public boolean isObjectInBaseClass(	Object cleAttrib,
					String nomChamp);
 
	/** Tester si la valeur de l'identifiant d'un objet passé en paramètre existe dans 
	 * la base de donnée Objet
	 * @param cleAttrib - la valeur de l'identifiant de l'instance à trouver
	 * @return true si existe dans la base, sinon false
	 */ 
	public boolean isIdObjectInBaseClass(String cleAttrib);
	/** Mise à jour dans la base  de l'enregistrement d'une instance
	 * de cette classe, avec comme clé l'identifiant de l'objet
	 * @param cleAttrib - la valeur de la clé
	 * @param keyName - le nom de la clé de l'objet
	 * @param setObj - la valeur de mise à jour de l'instance
	 */ 
	public boolean updateObjectByAttribKey(	Object setObj,
					String cleAttrib,
					String keyName);
		
	/** Mise à jour dans la base  de l'enregistrement d'une instance
	 * de cette classe, avec comme clé l'identifiant de l'objet
	 * @param cleAttrib - la valeur de la clé
	 * @param keyName - nom de la clé applicative
	 * @param setObj - la valeur de mise à jour de l'instance
	 * @parama listName - sauf la valeur dans les champs listName
	 */ 
	public boolean updateObjectByAttribKey(	Object setObj,
					String cleAttrib,
					String keyName,
					List listName);
		
	/** Mise à jour dans la base  de l'enregistrement d'une instance
	 * de cette classe, avec comme clé l'identifiant de l'objet
	 * @param cleAttrib - la valeur de la clé
	 * @param keyName - nom de la clé applicative
	 * @param setObj - la valeur de mise à jour de l'instance
	 * @parama listName - la liste des noms d'attributs dont les valeurs seront
	 * 	mise à jour 
	 */ 
	public boolean updateObjectByAttribKeyName(	Object setObj,
					String cleAttrib,
					String keyName,
					List listName);
	/** Suppression dans la base de l'enregistrement d'une instance
	 * de cette classe, avec comme clé nom de la clé applicative de l'objet
	 * @param cleAttrib - la valeur de la clé
	 * @param keyName - nom de la clé applicative
	 * @return l'instance de l'objet supprimé dans la base, null si maj échoué
	 */ 
	public boolean deleteObjectByAttribKey(	String cleAttrib,
						String keyName);
	/** Suppression de tous les enregistrements dans la base de toutes
	 * les instances de cette classe.
	 * @return l'instance de l'objet supprimé dans la base, null si maj échoué
	 */ 
	public boolean deleteAllObject();
	/** 
	 * Retourner la liste de tous les objets du modèle courant dans la base de donnée,
	 * @return un vecteur contenant le résultat
	 */
	public Vector getAllObject(); 
	/** 
	 * Retourner la liste de tous les ID internes au container des objets du modèle (Db4o seul)
	 * courant dans la base de donnée,
	 * @return un vecteur contenant les ID des résultats
	 */
	public Vector getAllIdObject(); 
	/** 
	 * Retourner la liste de tous les objets dans la base de donnée, correspondant à 
	 * un critère exact.
	 * @param nomAttrib designation de l'identifiant
	 * @param cleCherche cle de recherche
	 * @return un vecteur contenant le résultat
	 */
	public Vector getAllObject(	String nomAttrib,
			Object cleCherche); 
	/** 
	 * Retourner la liste de tous les IDs objets dans la base de donnée, correspondant à 
	 * un critère exact.
	 * @param nomAttrib designation de l'identifiant
	 * @param cleCherche cle de recherche
	 * @return un vecteur contenant le résultat
	 */
	public Vector getAllIdObject(	String nomAttrib,
				Object cleCherche); 
	/** 
	 * Retourner la liste de tous les objets Article dans la base de donnée, correspondant
	 * à un critère approximatif
	 * @param nomAttrib designation de l'identifiant
	 * @param cleCherche cle de recherche
	 * @param compare mode de comparaison
	 * @return un vecteur contenant le résultat
	 */
	public Vector getAllObject(	String nomAttrib,
				Object cleCherche,
				int compare); 
	/** 
	 * Retourner la liste de tous les IDs objets dans la base de donnée (Db4o seul), correspondant
	 * à un critère approximatif
	 * @param nomAttrib designation de l'identifiant
	 * @param cleCherche cle de recherche
	 * @param compare mode de comparaison
	 * @return un vecteur contenant le résultat
	 */
	public Vector getAllIdObject(	String nomAttrib,
				Object cleCherche,
				int compare); 
}

(hitohy)

 
 

pojofahaiv.txt · Novaina farany:: 2008/09/11 12:43