Hướng dẫn SQLite trên Android

Các mục sẽ hướng dẫn:

1. Cách tạo và xóa một CSDL cho SQLite trong Android

2. Cách tạo và xóa bảng trong SQLite

3. Cách thêm, sửa và xóa dữ liệu trong bảng của SQLite

4. Cách truy vấn dữ liệu trong bảng của SQLite

———————————————————————————–

1. Cách tạo và xóa một CSDL cho SQLite trong Android

a) Tạo CSDL cho SQLite

– Tạo hoặc mở CSDL.

public SQLiteDatabase CreateOrOpenDB()
{
return openOrCreateDatabase(“DB_NTK.db“, MODE_PRIVATE, null);
}

Nơi lưu file database được đặt ở vị trí” /data/data/[AppName]/databases/[DatabaseName]

[AppName]: là tên của dự án mình tạo ban đầu.

[DatabaseName]: là tên database mà mình tạo khi nãy. VD: DB_NTK.db

– Nếu bạn muốn lưu trữ trên SD Card thì bắt buộc bạn phải cấp quyền cho app của mình:

<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />

b) Xóa CSDL cho SQLite

public void DeleteDatabase()
{
if(deleteDatabase(“DB_NTK.db“))
{
Toast.makeText(getApplicationContext(), “Delete database is successfull!”, Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), “Delete database is failed!”, Toast.LENGTH_LONG).show();
}
}

– deleteDatabase(“DB_NTK.db“) nếu thành công sẽ trả lại là true và ngược lại, thất bại sẽ là false.

2. Cách tạo và xóa bảng trong SQLite

a) Cách tạo bảng trong SQLite

database = CreateOrOpenDB();
String sql = “CREATE TABLE Persons (“;
sql += “ID TEXT PRIMARY KEY, “;
sql += “Name TEXT, “;
sql += “Gender BIT, “;
sql += “Height INTEGER)”;
database.execSQL(sql);

b) Cách xóa bảng trong SQLite

DROP TABLE Persons

3. Cách thêm, sửa và xóa dữ liệu trong bảng của SQLite

a) Thêm dữ liệu (Insert) vào bảng

public void onClick(View v)

{

Random rd = new Random();
double id = rd.nextDouble();
EditText Name = (EditText)findViewById(R.id.Name);
EditText Height = (EditText)findViewById(R.id.Height);
CheckBox Gender = (CheckBox)findViewById(R.id.Gender);

ContentValues values = new ContentValues();
values.put(“ID“, id);
values.put(“Name“, Name.getText().toString());
values.put(“Gender“, Gender.isChecked());
values.put(“Height“, Height.getText().toString());

if (SessionApp.database.insert(“Persons“, null, values) == -1)
{
Toast.makeText(getApplicationContext(), “Failed to insert record!”, Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), “Insert record is successful!”, Toast.LENGTH_LONG).show();
}
}

b) Sửa dữ liệu (Update) trong bảng

public int update (String table, ContentValues values,    String whereClause, String[]whereArgs)

Đối số 1: là tên bảng

Đối số 2: là đối tượng muốn chính sửa (với giá trị mới)

Đối số 3: là tập các điều kiện lọc (dùng dấu chấm hỏi ? để tạo điều kiện lọc)

Đối số 4: là tập các giá trị của điều kiện lọc (lấy theo đúng thứ tự)

– Hàm này trả về số dòng được chỉnh sửa.

– Ví dụ nếu có 2 dòng bị thay đổi thì nó trả về 2. Nếu không có dòng nào bị ảnh hưởng thì nó trả về 0.

c) Xóa dữ liệu (Delete) trong bảng

public int delete (String table,       String whereClause,       String[] whereArgs) 

Đối số 1: là tên bảng.

Đối số 2: là tập điều kiện lọc (dùng ? để tạo).

Đối số 3: là tập các giá trị của điều kiện lọc.

– Hàm trả về số dòng bị xóa.

– Muốn xóa toàn bộ dữ liệu trong bảng thì ta truyền null vào 2 đối số cuối.

4. Cách lấy (select) dữ liệu trong bảng

public void LoadData(SQLiteDatabase database)
{
Cursor c = database.rawQuery(“Select * from Persons”, null);
c.moveToFirst();
while (!c.isAfterLast())
{
c.moveToNext(); 

c.getString(0);

}
c.close();
}

4 thoughts on “Hướng dẫn SQLite trên Android

  1. e chào ad.
    ad ơi cho e hỏi phần xóa table đó: sd DROP TABLE table_name
    lệnh này mình để ở trong 1 phương thức hay để nó ở đâu ạ?
    sd pương thức ntn có đc ko ạ?
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    database.execSQL(“DROP TABLE IF EXISTS tbllop”);
    doCreateLopTable();

    tại e thấy trên mạng sd p.thức này nhưng ở onClick() e muốn gọi đến p.thức trên:

    else if(arg0==btndeletetable)
    {
    onUpgrade();
    }

    thì nó báo lỗi ạ.
    e mới hok cái sqlite nên e cũng chưa biết nhiều nên mong ad chỉ bảo và giúp đỡ e !!!
    e cảm ơn ạ!!!

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s