کار با دیتابیس SQLite هیچ چیز سختی نداره. شما باید اول مجوز نوشتن روی دیسک رو بدین و بعد با کلاس SQLiteDatabase کار کنید.
اول باید مجوز رو توی مانیفست بدین:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
بعد باید مسیر نگهداری دیتابیس رو مشخص کنید و درصورت نیاز بسازین و بقیه کارها رو انجام بدین. مثال:
(مباحثی از این دست رو توی دوره پیشرفته اندروید تدریس میکنیم - میتونید مجازی و غیرحضوری هم شرکت کنید -
لینک)
package ir.ncis.course.app.database;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
public class DatabaseActivity extends Activity {
public static SQLiteDatabase database;
public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
public static final String DIR_DATABASE = DIR_SDCARD + "/database-test/";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new File(DIR_DATABASE).mkdirs();
database = SQLiteDatabase.openOrCreateDatabase(DIR_DATABASE + "database.sqlite", null);
// Create Table
database.execSQL("CREATE TABLE IF NOT EXISTS person (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , " +
"name TEXT, " +
"family TEXT, " +
"age INTEGER" +
")");
// Insert rows
for (int i = 1; i <= 20; i++) {
database.execSQL("INSERT INTO person (name,family,age) VALUES ('NAME#" + i + "','Family#" + i + "'," + i + ")");
}
// Read records
Cursor cursor = database.rawQuery("SELECT * FROM person WHERE (age>10)", null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
String family = cursor.getString(cursor.getColumnIndex("family"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
Log.i("LOG", "Record: " + name + " | " + family + " | " + age);
}
cursor.close();
// Update records
database.execSQL("UPDATE person SET name='test1',family='test2' WHERE (age>7)");
// Delete records
database.execSQL("DELETE FROM person WHERE (age>10)");
}
}