עבור לתוכן

prepred statement כללי בJAVA

Featured Replies

פורסם

שלום לכולם, :hi:

אני עובד על פרוייקט ואני רוצה לעשות הפרדה, לעשות חבילה של GUI שמכילה קלאסים של GUI וחבילה של DB.

בחבילה של הDB יש לי מחלקה SqlConnection שיש לה מתודה "InsertToTable"

אני רוצה שהמתודה הזאת תהיה כללית ותתעסק עם כל טבלה שתידרש בכל גודל עמודות שהוא.

אני אסביר.

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

נגיד יש את השדות 'שם ספר' ו-'שם סופר'. אז מה שעשיתי המתודה של הכפתור מקבלת את הפרמטרים של שם הספר ושם הסופר והיא מעבירה את הפרמטרים בTreeMap למתודה "InsertToTable", הכנתי שם Prepared statement והכל טוב ויפה.

אני רוצה אבל, שהprepared statement במתודה "InsertToTable" יהיה כללי, ז"א במקום השם של הטבלה בפקודה Insert יהיה לי סימן שאלה והוא יידע גם להתעסק עם טבלאות שונות בעלי מספר עמודות שונה. אם למשל עכשיו אני כותב את הכפתור שמוסיף את פרטי המשתמש למערכת ונגיד בטבלה הזאת יש 5 עמודות, אז שאני אוכל להשתמש באותה מתודה "InsertToTable". ז"א שהיה תהיה כללית ותטפל בכללי בהוספת נתונים לכל טבלה שהיא ותדע להסתדר עם כל מספר עמודות שהוא.

איך אני עושה כזה דבר? או אני אשאל, איך נהוג לעשות כזה דבר? אם אתם הייתם כותבים מערכת שרת\לקוח עם GUI איך אתם הייתם מחלקים את החבילות והמחלקות שלכם?

תודה מראש :)

פורסם

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

הפונקציה שלך שמכניסה לטבלה צריכה לקבל את שם הטבלה בתור פרמטר , ואת שאר הנתונים להכנסה כרשימה בפרמטר שני ואז לבנות את השאילתא

insert into VAR1 values VAR2

ולהעביר את המחרוזת הזאת כפרמטר לפונקציה שמכניסה לבסיס הנתונים .

פורסם
  • מחבר

יפה, אבל מה הקטע, אני צריך כמו שאמרת את שם הטבלה והנתונים שאני רוצה להכניס.

אז בוא נגיד שיש לי טבלה שיש לי שם עמודה אחת ולטבלה קוראים password (סתם דוגמא)

אז לפי מה שכתבת אני צריך להעביר את שם הטבלה password (שיחליף את Var1) ואת הנתון שאני רוצה להכניס שיחליף את Var2 נכון?

אבל אני רוצה שעכשיו אם יש לי טבלה עם 3 עמודות, אותה מתודה תדע לטפל גם בזה עם השאילתא הזאת, שעכשיו השאילתא תדע להתרחב ותחכה ל-Var1 שם הטבלה ועוד Var2,Var3,Var4 שהם יקבלו את הנתונים ויכניסו לטבלה הזאת עכשיו עם 3 עמודות.

אני רוצה שהמתודה תהיה כללית ולא תהיה תלויה במספר עמודות של טבלה.

פורסם

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

מחלקות הבנים יצרו לך את הprepared statement ויכניסו לך את הנתונים לטבלה, וכל שאר הלוגיקה ששייכת לכל הטבלאות (לדוגמא - שמירת החיבור למסד הנתונים שלך) תתבצע במחלקת האב.

פורסם

מה הבעיה להעביר את שם הטבלה ומערך של הנתונים?

או שני מערכים אחד נתונים ואחד שמות עמודות?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים