আরও এখানে অনুপস্থিত পয়েন্ট যুক্ত করতে, জস্কির অনুরোধ অনুসারে
ডাটাবেস সংস্করণ SQLite
ডাটাবেস ফাইলের মধ্যে সংরক্ষণ করা হয় ।
ক্যাচটি কনস্ট্রাক্টর
SQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
সুতরাং যখন ডেটাবেস হেল্পার কনস্ট্রাক্টর সাথে ডাকা হয় name
(২ য় প্যারাম) , প্ল্যাটফর্মটি পরীক্ষা করে যে ডেটাবেস উপস্থিত রয়েছে কি না এবং যদি ডাটাবেস উপস্থিত থাকে, এটি ডাটাবেস ফাইল শিরোলেখ থেকে সংস্করণ তথ্য পায় এবং ডান কলটি আবার ট্রিগার করে
পুরানো উত্তরে যেমন ইতিমধ্যে ব্যাখ্যা করা হয়েছে, নামের সাথে থাকা ডাটাবেসটি উপস্থিত না থাকলে এটি ট্রিগার করে onCreate
।
নীচে ব্যাখ্যা ব্যাখ্যা onUpgrade
একটি উদাহরণ দিয়ে কেস ।
বলুন, আপনার অ্যাপ্লিকেশনটির প্রথম সংস্করণটি কনস্ট্রাক্টর পাসিং সংস্করণ হিসাবে DatabaseHelper
(বর্ধিত SQLiteOpenHelper
) ছিল 1
এবং তারপরে আপনি নতুন উত্স কোড হিসাবে সংস্করণটি পাস করার সাথে সাথে একটি আপগ্রেড অ্যাপ্লিকেশন সরবরাহ করেছিলেন 2
, তারপরে স্বয়ংক্রিয়ভাবে DatabaseHelper
নির্মিত হয়, প্ল্যাটফর্মটি ট্রিগার হয়ে যায়onUpgrade
ফাইলটি ইতিমধ্যে উপস্থিত দেখে করে, তবে আপনি যে সংস্করণটি পেরিয়ে গেছেন তার তুলনায় সংস্করণটি কম।
এখন বলুন আপনি ডিবি সংস্করণ সহ অ্যাপ্লিকেশনটির তৃতীয় সংস্করণ দেওয়ার পরিকল্পনা করছেন 3
(ডিবি সংস্করণটি কেবল তখনই বাড়ানো হবে যখন ডাটাবেস স্কিমাটি পরিবর্তন করতে হবে)। এই জাতীয় বর্ধিত আপগ্রেডগুলিতে আপনাকে আরও ভাল রক্ষণাবেক্ষণযোগ্য কোডের জন্য প্রতিটি সংস্করণ থেকে ক্রমবর্ধমান আপগ্রেড যুক্তি লিখতে হবে
নীচে সিউডো কোড উদাহরণ:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch(oldVersion) {
case 1:
//upgrade logic from version 1 to 2
case 2:
//upgrade logic from version 2 to 3
case 3:
//upgrade logic from version 3 to 4
break;
default:
throw new IllegalStateException(
"onUpgrade() with unknown oldVersion " + oldVersion);
}
}
break
ক্ষেত্রে অনুপস্থিত বিবৃতি লক্ষ্য করুন 1
এবং 2
। এটি আমি ইনক্রিমেন্টাল আপগ্রেড বলতে চাইছি।
যদি পুরাতন সংস্করণ বলুন 2
এবং নতুন সংস্করণ 4
, তারপর যুক্তিবিজ্ঞান থেকে ডাটাবেসের আপগ্রেড করবে 2
করার 3
এবং তারপর4
পুরোনো সংস্করণ হয়, তাহলে 3
করুন এবং নতুন সংস্করণ 4
, এটা ঠিক জন্য আপগ্রেড যুক্তিবিজ্ঞান চালানো হবে 3
থেকে4