Design PAttern באפליקציית WEB

Design PAttern באפליקציית WEB

נגיד ואני יוצר מערכת בלוגים (סתם לדוגמא). וכאשר אני יוצר בלוג, אני רוצה להכניס את הנתונים למסד ואח"כ לקבל מס' מסויים. לפי מודל ה-DAO עליי לבצע שתי שיטות: createBlog ואח"כ read_Blog_Properties. אבל המידע תלוי בבסיסי נתונים וגישה לבסיס נתונים זה משאב קצת יקר באפליקציות וואב, אם בכל אחת מהשיטות אני אעשה חיבור למסד ואז אנתק אותו אז אני בעצם אצור התחברות פעמיים למסד. מה שאני רוצה בעצם זה להתחבר פעם אחת למסד, ולהשתמש בשתי הפונקציות, הכיצד? (במילים אחרות, לאכול את העוגה ולהשאיר אותה שלמה?) תודה, ניר
 
פתרון שחשבתי עליו

הוא כשלאחר שאני יוצר את האובייקט אני אקרא למתודה שתפתח את המסד, נגיד Open. ולפני מעבר לעמוד הבא או בסיום השימוש במסד לקרוא למתודה close שתסגור את הקישור למסד. הקישור למסד יהיה חבר במחלקה של ה-DAO וכך אני אשמור על הקישור למסד בין שתי המתודות. מה אתם חושבים על הפתרון הזה?
 

guznik

New member
אני הולך צעד אחד קדימה

ומשתמש בכלי שמנהל Pool של חיבורים מול ה-DB. באמת אין סיבה שמתכנת אפליקטיבי יתעסק עם דברים כאלה. יש ל-Apache פרוייקט DB, אני מציע לך להסתכל עליו אם אתה עובד עם JDBC. אני בכלל מציע לך להתקדם ולעבוד עם Hibernate שגם בא עם ניהול חיבורים שלא צריך לנהל ידנית.
 
מדובר ב-PHP

הדבר הכי קרוב שאני מכיר ל-Connection Pool ב-PHP זה Persistent connect אבל זה לא ממש מומלץ לשימוש לפי מה שהבנתי, יש עם זה בעיות.
 

agnitix

New member
Hibernate In Action- חפש באמזון

זה ספר מצוין. אבל מניסיון, אפשר פשוט לקרוא את התיעוד באתר. כלי מצוין עם תיעוד מפורט, המון דוגמאות וקהילה שתיתן לך מענה. בהצלחה. Agnitix
 
תודה רבה ושאלה לגבי זה.

Hibernate (ואחרים כמו Spring למשל) הן חבילות דיי גדולות, וכאשר משלבים אותם עם אפליקציה בעצם שרת ה-J2EE (אני למשל משתמש ב-Tomcat שהוא ממלא רק חלק מ-J2EE) צריך לטעון הרבה מאוד מחלקות לזיכרון. זה לא יעמיס על השרת בעצם? ואם אני משתמש באחסון שיתופי ויש לי הגבלה ל-Memory Heap, האם זה בעצם יתפוס לי הרבה Memory Heap ?
 

עידו פ

New member
בעקרון זה תלוי בסביבת הפיתוח

אבל ישנם כלים כפי שהזכירו שמאפשרים לנהל Pool של connections. במקרה של כלי מיקרוסופט, ניתן להשתמש ב-+COM (מה שנקרא component services). הטכנולוג' נתמכת החל מוינדוס 2000 (וגם XP) ונתמכת גם בסביבות תומכות COM (כגון VB) ובסביבות דוט נט כמובן. (בגרסאותיה הקודמות היא נקראה MTS ושימשה בוינדוס NT)
 
למעלה