Sqlite là một cơ sở dữ liệu có thể sử dụng trên nhiều nền tảng như: desktop, mobile,… Bạn không cần phải cài đặt thêm gì vì cơ sở dữ liệu này đã tích hợp mọi thứ. Kết nối cơ sở dữ liệu sqlite trong android có những tiện ích gì mà được giới công nghệ ưa thích đến vậy?
Cách tạo và kết nối cơ sở dữ liệu sqlite trong android
Sqlite sở hữu nhiều ưu điểm vượt trội như: Không cần cấu hình, không cần server SQL riêng. Sqlite sẽ được lưu trữ trong một file riêng có tên storage.
Để sử dụng Sqlite, bạn cần truy cập vào storage đồng thời xóa file cơ sở dữ liệu. Với android, các ứng dụng sẽ được lưu trữ tại một file tên data/data/applicationId/databases/.
Trong đó applicationId là tên của ứng dụng có trong file build.gradle. Đối với SQLite3 DB, bạn có thể lưu nó ở bất kỳ đâu trong ứng dụng của bạn. Đặc biệt, Context (Activity) có thể giúp bạn xác định vị trí lưu trữ của DB.
Hướng dẫn thực hiện các truy vấn cơ sở dữ liệu sqlite trong android
Đầu tiên, bạn cần tạo được Database bằng cách dùng rawQuery mục đích của việc này là dùng để chạy các truy vấn SQL.
Cách làm việc với Sqlite
Để làm việc với Sqlite bạn cần thành thạo các ngôn ngữ SQL để thực hiện truy vấn. Tạo mã nguồn bằng lệnh Git và kiểm tra một bảng trong cơ sở dữ liệu.
Để kiểm tra bảng product bạn cần đọc dữ liệu bằng đoạn code:
//true nếu bảng tồn tại
boolean isTableExist(SQLiteDatabase db, String table) {
Cursor cursor = db.rawQuery(“SELECT name FROM sqlite_master WHERE type=’table’ AND name=?”, new String[]{table});
boolean tableExist = (cursor.getCount() != 0);
cursor.close();
return tableExist;
Nạp dữ liệu vào Adapter (ListView)
Nạp sản phẩm ở product vào Adapter bằng phương thức rawQuery. Tiếp đó bạn sẽ thu được Cursor được duyệt và lấy dữ liệu.
private void loadDbProduct() {
listProduct.clear();
SQLiteDatabase db = openOrCreateDatabase(DB_NAME, Context.MODE_PRIVATE, null);
if (!isTableExist(db, “product”)) {
Toast.makeText(this, “Bảng product không tồn tại, cần tạo bảng trước”, Toast.LENGTH_LONG).show();
((TextView) findViewById(R.id.infomation)).setText(“Bảng dữ liệu không có, phải tạo bảng”);
findViewById(R.id.addbutton).setVisibility(View.GONE);
return;
}
((TextView) findViewById(R.id.infomation)).setText(“PRODUCT”);
findViewById(R.id.addbutton).setVisibility(View.VISIBLE);
Cursor cursor = db.rawQuery(“SELECT id, name, price from product”, null);
//Đến dòng đầu của tập dữ liệu
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
//Đọc dữ liệu dòng hiện tại
int productID = cursor.getInt(0);
String productName = cursor.getString(1);
int productPrice = cursor.getInt(2);
listProduct.add(new Product(productID, productName, productPrice));
// Đến dòng tiếp theo
cursor.moveToNext();
}
cursor.close();
}
Trên đây là hình thức của code cơ bản. Code có thể qua lại bằng phương thức truyền dữ liệu. Đầu tiên khi ấn vào nút thêm sản phẩm, chúng ta sẽ thấy được Activity có tên EditProduct.
Khi isupdate truyền giá trị có tên là false thì Activity sẽ được thêm sản phẩm. Ngược lại Activity sẽ được cập nhật dữ liệu sẵn có khi bấm vào chọn phần tử thì lúc này giá trị của false sẽ được khởi tạo.
Cách lưu sản phẩm vào cơ sở dữ liệu sqlite trong android
findViewById(R.id.save).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SQLiteDatabase db = openOrCreateDatabase(MainActivity.DB_NAME, Context.MODE_PRIVATE, null);
product.name = editName.getText().toString();
product.price = Integer.parseInt(editPrice.getText().toString());
if (isupdate) {
//Cập nhật
db.execSQL(“UPDATE product SET name=?, price = ? where id = ?”,
new String[]{product.name, product.price + “”, product.productID + “”});
} else {
//Tạo
//Cập nhật
db.execSQL(“INSERT INTO product (name, price ) VALUES (?,?)”,
new String[]{product.name, product.price + “”});
}
db.close();
finish();
}
});
Bài viết này là những chia sẻ về kết nối cơ sở dữ liệu sqlite trong android. Chúng tôi đã áp dụng các phương thức để thực hiện truy vấn đến sqlite một cách tiện lợi và nhanh chóng nhất. Chúc các bạn mạnh khỏe và thành công.