अपनी पिछली
पोस्ट में मैंने पॉप-अप मेनू बनाने के बारे में लिखा था, आज हम एक और महत्वपूर्ण विषय जैसे डेटा स्टोरेज के बारे में बात करेंगे। एंड्रॉइड में डेटा स्टोर करने के कई तरीके हैं: सामान्य सेटिंग्स, डीबी, और इसी तरह। इस पोस्ट में मैं डेटाबेस में डेटा स्टोर करने के तरीके के बारे में बात करूंगा।
एंड्रॉइड डेटाबेस के रूप में एम्बेडेड SQLite का उपयोग करता है। SQLite एक बहुत तेज़ डेटाबेस है, इसलिए मोबाइल प्लेटफ़ॉर्म पर इसके उपयोग से प्रदर्शन में तीव्र कमी नहीं होती है। कोड विवरण पर चलते हैं। Google ने हमारी नसों का ध्यान रखा और एक छोटी सी क्लास की उपयोगिता SQLiteOpenHelper लिखी।
public class DbOpenHelper extends SQLiteOpenHelper{
private static final int DB_VERSION = 1;
private static final String DB_NAME = "test" ;
public static final String TABLE_NAME = "users" ;
public static final String LOGIN = "login" ;
public static final String PASSW = "passw" ;
private static final String CREATE_TABLE = "create table " + TABLE_NAME + " ( _id integer primary key autoincrement, "
+ LOGIN + " TEXT, " + PASSW + " TEXT)" ;
public DbOpenHelper(Context context) {
super(context, DB_NAME, null ,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
* This source code was highlighted with Source Code Highlighter .
DbOpenHelper वर्ग का एक उदाहरण बनाते समय, यह जांचा जाएगा कि क्या डेटाबेस नामक परीक्षण मौजूद है, यदि यह मौजूद है, तो onUpgrad विधि को बुलाया जाएगा, यदि नहीं, तो onCreate जिसमें हम उपयोगकर्ता तालिका बनाते हैं (आमतौर पर इस पद्धति में तालिकाएँ बनाई जाती हैं और डिफ़ॉल्ट मानों के साथ आरंभ की जाती हैं)। SQLiteOpenHelper वर्ग में GetReadableDatabase और getWritableDatabase विधियाँ हैं जो SQLiteDatabase class का एक उदाहरण लौटाती हैं। इस उदाहरण का उपयोग करते हुए, हम डेटाबेस के साथ काम करेंगे। इसमें वे सभी विधियाँ हैं जिनकी हमें आवश्यकता है: सम्मिलित करें, अपडेट करें, क्वेरी करें, हटाएं, इत्यादि।
आइए एक छोटा अनुप्रयोग लिखें जो डेटाबेस में उपयोगकर्ता नाम और पासवर्ड बचाता है
public class TestActivity extends Activity {
EditText loginEditText = null ;
EditText passEditText = null ;
Button saveButton = null ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
loginEditText = (EditText) findViewById(R.id.login);
passEditText = (EditText) findViewById(R.id.passw);
saveButton = (Button) findViewById(R.id.btn1);
saveButton.setOnClickListener( new View.OnClickListener() {
public void onClick(View view) {
DbOpenHelper dbOpenHelper = new DbOpenHelper(TestActivity. this );
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(DbOpenHelper.LOGIN,loginEditText.getText().toString());
cv.put(DbOpenHelper.PASSW,passEditText.getText().toString());
db.insert(DbOpenHelper.TABLE_NAME, null ,cv);
db.close();
loginEditText.setText( "" );
passEditText.setText( "" );
}
});
}
}
* This source code was highlighted with Source Code Highlighter .
उदाहरण में, हमारे पास एक विंडो है जिसमें दो इनपुट फ़ील्ड और एक बटन है, और जब बटन दबाया जाता है, तो यह सहेजा जाता है। सबसे पहले, हम DbOpenHelper वर्ग का एक उदाहरण बनाते हैं, जो डेटाबेस और तालिकाओं को स्वयं बनाता है। फिर हमें SQLiteDatabase object मिलता है, जो डालने का तरीका रिकॉर्ड करेगा। ContentValues डेटा पर एक प्रकार का आवरण है जो डेटाबेस को लिखा जाएगा। पुट विधि में, पहला तर्क कॉलम नाम है, और दूसरा डेटा जो कॉलम में लिखा जाएगा, SQL में, यह इस तरह दिखता है:
INSERT INTO users ( 'login','passw') VALUES ('somelogin','somepass')
होमवर्क के रूप में, डेटाबेस से डेटा प्राप्त करने और इसे स्क्रीन पर प्रदर्शित करने का प्रयास करें।
परियोजना के स्रोत
यहां से डाउनलोड किए जा सकते
हैं ।
मैं टिप्पणियों में सवालों के जवाब दूंगा।
मेरे
ब्लॉग पर PS ओरिजिनल
PSS मैं एंड्रॉइड के लिए एक बड़ी परियोजना शुरू करना चाहता हूं, मुझे एक प्रोग्रामर और डिजाइनर की आवश्यकता है।