Professional Documents
Culture Documents
SQLite là một cơ sở dữ liệu SQL mã nguồn mở, nó lưu trữ dữ liệu vào một tập tin văn bản trên một thiết
bị. Nó mặc định đã được tích hợp trên thiết bị Android. Để truy cập dữ liệu này, bạn không cần phải thiết
lập bất kỳ loại kết nối nào cho nó như JDBC, ODBC, ... SQLite được Richard Hipp viết dưới dạng thư viện
bằng ngôn ngữ lập trình C.
SQLite có các ưu điểm sau:
• Tin cậy: các hoạt động transaction (chuyển giao) nội trong cơ sở dữ liệu được thực hiện trọn vẹn,
không gây lỗi khi xảy ra sự cố phần cứng
• Tuân theo chuẩn SQL92 (chỉ có một vài đặc điểm không hỗ trợ)
• Không cần cài đặt cấu hình
• Kích thước chương trình gọn nhẹ, với cấu hình đầy đủ chỉ không đầy 300 kB
• Thực hiện các thao tác đơn giản nhanh hơn các hệ thống cơ sở dữ liệu khách/chủ khác
• Không cần phần mềm phụ trợ
• Phần mềm tự do với mã nguồn mở, được chú thích rõ ràng
2. Xây dựng thử ứng dụng bằng CSDL SQLITE trong androi
Tạo một layer đơn giản
3. Khởi tạo SQL data base bằng cách dùng SQLiteOpenHelper class
CRUD là viết tắt của Create, Read, Update và Delete. Đây là 4 thao tác cơ bản của mọi CSDL.
4. Companion Objects trong Kotlin
Trước đây, khi sử dụng Java, mình hay sử dụng biến static để định nghĩa tên
database, tên bảng, tên cột hay phiên bản database… Không có khái niệm
biến/hàm static trong ngôn ngữ Kotlin. Thay vào đó, người ta sử dụng khái niệm
“companion object”.
companion object {
val Tag = "DatabaseHandler"
val DBName = "ContactDB"
val DBVersion = 1
val tableName = "phoneTable"
val ConID = "id"
val FirstName = "fname"
val LastName = "lname"
val Number = "number"
val Email = "email"
}
Trong hàm khởi tạo constructor(), chúng ta truyền vào tham số “context” từ activity đang hoạt
động.
Database sẽ được tạo khi phương thức writableDatabase được gọi.
• Hàm onCreate()được gọi khi database được khởi tạo. Chúng ta có thể tạo bảng của CSDL
trong hàm này
• Hàm onUpgrade()sử dụng khi chúng ta cần thay đổi cấu trúc của database hiện tại của ứng
dụng như: thêm bảng, thêm cột…
• Hàm AddContact()sẽ thêm 1 contact mới vào database.
• Hàm FetchContacts()sẽ đọc toàn bộ records có trong bảng và trả về cho chúng ta 1
ArrayList.Nếu chúng ta truyền tham số là “%” nó sẽ lấy toàn bộ records có trong database,
ngược lại, nó sẽ tìm kiếm theo first_name.
UpdateContact() và RemoveContact()sẽ chỉnh sửa và xóa contact trong database. Chúng ta sẽ
truyền contact_id vào hàm này với các contact_id là khóa chính của bảng contact.
Bây giờ, class xử lý database đã được sẵn sàng để được sửa dụng
5. Triển khai ListView với Custom Adapter
Tiếp theo, chúng ta sẽ sử dụng DatabaseHandler class để tương tác với database và hiển thị
ra ListView thông qua Custom Adapter
• Trong hàm onResume(), chúng ta tạo ra 1 đối tượng của DatabaseHandler class và gọi tới
hàm FetchContact(). Kết quả trả về là ArrayList
• Danh sách contacts sẽ được truyền qua ContactAdapter thông qua hàm khởi tạo :
Với ngôn ngữ Kotlin, việc triển khai lắng nghe sự kiện OnClick cực kì đơn giản và ngắn gọn hơn
hơn Java rất nhiều
contact_list.onItemClickListener = AdapterView.OnItemClickListener {
adapterView, view, position, id ->
}
add_contact_btn.setOnClickListener(){
var intent= Intent(this,ContactManager::class.java)
startActivity(intent)
}
8. Tạo mới và chỉnh sửa
- Tạo activity thứ hai, có nhiệm vụ là thêm mới và chỉnh sửa các contact.
- Trong activity này, chúng ta sẽ thêm và chỉnh sửa contact tùy thuộc vào giá
trị của trường _id. Nếu nó bằng 0, chúng ta sẽ thêm liên hệ mới. Ngược lại,
nếu nó khác 0 thì chúng ta sẽ chỉnh sửa contact có id tương ứng với _id được
nhập vào.
Qua việc tạo một ứng dụng đơn giản giúp cho chúng ta
hiểu và biết cách sử dụng SQLite trong androi. Qua đó dễ
dàng xây dựng được các ứng dụng cần tương tác với data base,
kết nối CSDL SQLite trong androi