10 tháng 8, 2013

Lập trình Android: Bài 14

Bài học hôm nay Long sẽ hướng dẫn các bạn cách khởi tạo một database
sử dụng SQLite
1) Cũng như trên OS của iphone, Android cũng được gắn một chuẩn chương trình gọi là "sqlite3" dùng để:
- Khởi tạo mới 1 database
- Xác định các table trong SQL
- Các truy vấn (queries)
- Views
- Thủ tục (triggers)
- Chèn dòng trong table
- Xóa dòng table
- Cập nhật dòng table
- Chạy truy vấn quản lý một tập tin database của SQLite


2) Sử dụng SQLite
- SQLite thực hiện đầy đủ chuẩn SQL-92 của SQL (chuẩn SQL-92 nếu rảnh có thể tự  tìm hiểu)
- Nó có hỗ trợ việc chạy triggers và cho phép hầu hết các truy vấn phức tạp
- SQLite không thực hiện các ràng buộc toàn vẹn tham chiếu thông qua mô hình ràng buộc khoá ngoại
- SQLite sử dụng một mô hình dữ liệu đánh máy thoải mái.
3) Các chú ý:
- Trong các ứng dụng thực tế, phải chú ý tới việc chia sẽ dữ liệu. Ví dụ như người dùng này không thể truy cập xem dữ liệu người khác được ...
- Chú ý gắn cờ khi muốn đăng ký việc viết dữ liệu vào data
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
4) Kiểm tra database khởi tạo thành công:
- Các bạn hãy vào DDMS và theo đường dẫn sau:
data/data/<tên package lúc khởi tạo ứng dụng>/databases/
- Ở đây nếu có tập tin database như tên bạn đặt là đã khởi tạo thành công, có thể kiểm tra ngày giờ lúc khởi tạo nằm ngay ở phía bên phải của tập tin database
- Hướng dẫn cách xem dữ liệu trong database
Phần 1: http://android.vn/threads/24934/
Phần 2: http://android.vn/threads/25151/

Trong phần trước Long đã hướng dẫn cách khởi tạo 1 database SLQite trong một ứng dụng android (http://android.vn/threads/24934/). Và hôm nay cũng là 1 bài ví dụ tiếp theo của phần 1 hướng dẫn các bạn cách cập nhật lại dữ liệu trong CSDL, xóa dữ liệu, xóa toàn bộ dữ liệu, truy vấn dữ liệu với các câu lệnh SQL.
Để giúp các bạn dễ hiểu hơn, mời các bạn xem ví dụ trước nhé
sau đó Long sẽ hướng dẫn code
Hướng dẫn sử dụng SQLite làm database trong lập trình ứng dụng Android (Phần 2) - http://android.vn/threads/25151/
---------------------------------
Các bạn chú ý vào class MyDatabase.java cho nhé
ở đó Long có viết sẵn các hàm rồi
- Hàm cập nhật tên người dùng với đầu vào là acc, mật khẩu và tên cần thay đổi
 public boolean setNameHienThi(String acc,String mk,String data){
  ContentValues cv = new ContentValues();
  cv.put(COLUMN_NAME,data);
  long kq = db.update(TABLE_ACCOUNT,cv,COLUMN_ACC+"='"+acc+"'", null);
  if (kq==0)
   return false;
  else
   return true;
 }
- Hàm xóa một tài khoản với đối số đầu vào là acc cần xóa
 public int deleteAcc(String acc) {
  return db.delete(TABLE_ACCOUNT, COLUMN_ACC + "='" + acc + "'", null);
 }
- Hàm xóa toàn bộ table ACCOUNT
 public int deleteAccountAll() {
  return db.delete(TABLE_ACCOUNT, null, null);
 }
- Hàm thưc hiện truy vấn - kiểm  đăng nhập với đối số đầu vào là tên acc và mật khẩu
 public boolean kiemTraLogin(String acc,String mk){
  Cursor c = db.rawQuery("select * from "+TABLE_ACCOUNT+" where "+COLUMN_ACC+" = ? and "+COLUMN_PASSWORD+" = ?", new String[] { acc,mk }); 
  if(c.getCount()==1){
   c.close();
   return true;  
  }else{
   c.close();
   return false;
  }
 }
- Hàm lấy về chuỗi String là tên của tài khoản với đối số đầu vào là acc và mật khẩu
 public String getNameHienThi(String acc,String mk) {
  Cursor c = db.rawQuery("select * from "+TABLE_ACCOUNT+" where "+COLUMN_ACC+" = ? and "+COLUMN_PASSWORD+" = ?", new String[] { acc,mk });
  String data = "";
  if(c.getCount()==1){
   int i = c.getColumnIndex(COLUMN_NAME);
   c.moveToFirst();
   data=c.getString(i);
   c.close();
   return data; 
  }else{
   c.close();
   return "Ko Gi Ca";
  }
 }

Không có nhận xét nào:

Đăng nhận xét