רשימת מסדי נתונים בזיכרון

1. סקירה כללית

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

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

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

2. מאגר H2

H2 הוא בסיס נתונים בקוד פתוח שנכתב בג'אווה התומך ב- SQL סטנדרטי עבור בסיסי נתונים משובצים ועצמאים. זה מהיר מאוד וכלול בתוך JAR של כ -1.5 מגהבייט בלבד.

2.1. תלות של Maven

להשתמש H2 מסדי נתונים ביישום, עלינו להוסיף את התלות הבאה:

 com.h2database h2 1.4.194 

הגרסה האחרונה של H2 ניתן להוריד את מסד הנתונים מ Maven Central.

2.2. תְצוּרָה

כדי להתחבר ל- H2 מסד נתונים בזיכרון, אנו יכולים להשתמש בחיבור חוּט עם הפרוטוקול מ, ואחריו שם מסד הנתונים. ה driverClassName, URL, שם משתמש ו סיסמה ניתן למקם נכסים ב .נכסים קובץ שייקרא על ידי היישום שלנו:

driverClassName = org.h2.Driver url = jdbc: h2: mem: myDb; DB_CLOSE_DELAY = -1 שם משתמש = sa סיסמה = sa

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

כברירת מחדל, כאשר חיבור למסד הנתונים נסגר, גם בסיס הנתונים נסגר. אם אנו רוצים שמאגר המידע יימשך כל עוד ה- JVM פועל, אנו יכולים לציין את המאפיין DB_CLOSE_DELAY = -1

אם אנו משתמשים במסד הנתונים עם מצב שינה, עלינו גם לציין את הניב שינה:

hibernate.dialect = org.hibernate.dialect.H2Dialect

H2 מסד הנתונים מתוחזק באופן קבוע ומספק תיעוד מפורט יותר ב- h2database.com.

3. HSQLDB (HyperSQL מאגר מידע)

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

ניתן להשתמש בו במצב הזיכרון, או להגדיר אותו לשימוש באחסון דיסק.

3.1. תלות של Maven

לפיתוח יישום באמצעות HSQLDB, אנו זקוקים לתלות של Maven:

 org.hsqldb hsqldb 2.3.4 

תוכל למצוא את הגרסה האחרונה של HSQLDB במרכז מייבן.

3.2. תְצוּרָה

למאפייני החיבור הדרושים לנו הפורמט הבא:

driverClassName = org.hsqldb.jdbc.JDBCDriver url = jdbc: hsqldb: mem: myDb שם משתמש = sa סיסמה = sa

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

ה שינה נכס ניב עבור HSQLDB הוא:

hibernate.dialect = org.hibernate.dialect.HSQLDialect

קובץ ה- JAR מכיל גם מנהל מסדי נתונים עם ממשק משתמש. מידע נוסף ניתן למצוא באתר hsqldb.org.

4. מאגר דרבי אפאצ'י

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

דרבי מבוסס על תקני SQL ו- JDBC ומשמש בעיקר כמסד נתונים משובץ, אך ניתן להריצו גם במצב שרת לקוח באמצעות שרת רשת דרבי מִסגֶרֶת.

4.1. תלות של Maven

כדי להשתמש ב- דרבי מסד נתונים ביישום, עלינו להוסיף את התלות הבאה של Maven:

 org.apache.derby דרבי 10.13.1.1 

הגרסה האחרונה של דרבי מסד נתונים ניתן למצוא ב- Maven Central.

4.2. תְצוּרָה

מחרוזת החיבור משתמשת ב- זיכרון נוהל:

driverClassName = org.apache.derby.jdbc.EmbeddedDriver url = jdbc: דרבי: זיכרון: myDb; create = שם משתמש אמיתי = sa סיסמה = sa

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

אם משתמשים במסד הנתונים עם שינה, עלינו להגדיר את הניב:

hibernate.dialect = org.hibernate.dialect.DerbyDialect

אתה יכול לקרוא עוד על דרבי מסד נתונים בכתובת db.apache.org/derby.

5. מסד נתונים של SQLite

SQLite הוא מסד נתונים של SQL הפועל רק במצב מוטבע, בזיכרון או נשמר כקובץ. הוא כתוב בשפת C אך ניתן להשתמש בו גם עם Java.

5.1. תלות של Maven

כדי להשתמש ב- SQLite מסד נתונים, עלינו להוסיף את מנהל ההתקן JDBC JAR:

 org.xerial sqlite-jdbc 3.16.1 

את התלות sqlite-jdbc ניתן להוריד מ Maven Central.

5.2. תְצוּרָה

מאפייני החיבור משתמשים ב- org.sqlite.JDBC כיתת נהגים ו זיכרון פרוטוקול למחרוזת החיבור:

driverClassName = org.sqlite.JDBC url = jdbc: sqlite: זיכרון: myDb שם משתמש = sa סיסמה = sa

זה ייצור את myDb מסד נתונים באופן אוטומטי אם הוא לא קיים.

כַּיוֹם, שינה אינו מספק ניב עבור SQLite, אם כי סביר מאוד שזה יהיה בעתיד. אם אתה רוצה להשתמש SQLite עם שינה, אתה צריך ליצור את שלך HibernateDialect מעמד.

למידע נוסף אודות SQLite, עבור אל sqlite.org.

6. מאגרי מידע בזיכרון באתחול האביב

Spring Boot מקל במיוחד על שימוש במסד נתונים בזיכרון - מכיוון שהוא יכול ליצור את התצורה באופן אוטומטי עבור H2, HSQLDB, ו דרבי.

כל שעלינו לעשות בכדי להשתמש במסד נתונים של אחד משלושת הסוגים ב- Spring Boot הוא להוסיף את התלות שלו ל- pom.xml. כאשר המסגרת נתקלת בתלות במסלול הכיתה, היא תגדיר את מסד הנתונים באופן אוטומטי.

7. מסקנה

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

תוכל למצוא את דוגמאות הקוד המשמשות במאמר זה ב- Github.