
זו לא משימה קשה עבור מפתח אנדרואיד להמיר נתונים גולמיים למסד נתונים מובנה לאחסון פנימי. זה נעשה באמצעות השפה האמינה ביותר - SQL. ספריית הליבה המובנית של SQLite נמצאת בתוך מערכת ההפעלה של Android. זה יטפל בפעולות CRUD (יצירה, קריאה, עדכון ומחיקה) הנדרשות למסד נתונים. שיעורי Java וממשקים עבור SQLite מסופקים על ידי android.database. SQLite מקיימת מערכת ניהול מסדי נתונים יעילה. אך לשיטה המקובלת הזו חסרונות משלה.
- עליכם לכתוב קוד ארוך שחוזר על עצמו, שייקח זמן רב ויועד לטעויות.
- קשה מאוד לנהל שאילתות SQL עבור מסד נתונים יחסי מורכב.
כדי להתגבר על זה, גוגל הציגה את ספריית התמדה בחדר. זה משמש כשכבת הפשטה עבור ממשקי ה- API הקיימים של SQLite. כל החבילות, הפרמטרים, השיטות והמשתנים הנדרשים מיובאים לפרויקט אנדרואיד באמצעות הערות פשוטות.

בואו נסתכל כיצד ליישם זאת בדוגמה.
1. הוסף את תלות הדרגה בקובץ build.gradle.
implementation “android.arch.persistence.room:runtime:1.0.0”annotationProcessor “android.arch.persistence.room:compiler:1.0.0”
2. צור מחלקה של מודל נתונים לטבלת מסד הנתונים והערה על שם הטבלה והמפתח הראשי שלה.
@Entity public class Movies { @NonNull @PrimaryKey private String movieId; private String movieName; public Movies() { } public String getMovieId() { return movieId; } public void setMovieId(String movieId) { this.movieId = movieId; } public String getMovieName() { return movieName; } public void setMovieName (String movieName) { this.movieName = movieName; } }
3. צור מחלקת ממשק לגישה למסד נתונים. צור שיטות מופשטות לפעולות CRUD. הוסף שאילתת SQL מותאמת אישית כשיטה.
@Dao public interface DaoAccess { @Insert void insertOnlySingleMovie (Movies movies); @Insert void insertMultipleMovies (List moviesList); @Query (“SELECT * FROM Movies WHERE movieId = :movieId“) Movies fetchOneMoviesbyMovieId (int movieId); @Update void updateMovie (Movies movies); @Delete void deleteMovie (Movies movies); }
4. צור מחלקת מסד נתונים להטמעת מסד נתונים.
@Database (entities = {Movies.class}, version = 1, exportSchema = false) public abstract class MovieDatabase extends RoomDatabase { public abstract DaoAccess daoAccess() ; }
5. הצהיר ופתח את האובייקט עבור מחלקת מסד הנתונים בכיתת הפעילות או השבר שלך.
private static final String DATABASE_NAME = “movies_db”; private MovieDatabase movieDatabase; movieDatabase = Room.databaseBuilder(getApplicationContext(), MovieDatabase.class, DATABASE_NAME) .fallbackToDesctructiveMigration() .build();
הצעדים הראשוניים נעשים. באמצעות אובייקט מסד הנתונים, אתה יכול לבצע את כל הפונקציות לניהול מסד נתונים.
קוד הכנס לדוגמא:
new Thread(new Runnable() { @Override public void run() { Movies movie =new Movies(); movie.setMovieId( “2”); movie.setMovieName(“The Prestige”); movieDatabase.daoAccess () . insertOnlySingleMovie (movie); } }) .start();
השתמש תמיד בשרשור, AsyncTask או כל שרשור עובד כדי לבצע פעולות מסד נתונים.
למידע נוסף, אנא עיינו ב:
//developer.android.com/training/data-storage/room/index.html
חווה קידוד חלק עכשיו שיש מקום לשיפור!
פורסם במקור באתר thinkpalm.com.