You are on page 1of 12

Lập trình trên thiết bị di động

Chương 5 : KẾT NỐI CSDL SQLITE

SV thực hiện : Lê Tuấn Nhật Duy


1.SQLITE và kết nối trong androi

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

SQLiteOpenHelper được sử dụng để khởi tạo database. Nó cho phép quản lý cơ


sở dữ liệu, nâng cấp hoặc hạ cấp các phiên bản của database.
Sqlite android create database đơn giản là tạo một class, đặt tên
là DatabaseHandler. Chúng ta sẽ triển khai toàn bộ các chức năng CRUD của
database trong class này.

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

• Đây là 1 thiết kế cơ bản của ứng dụng sử dụng ListView và Button.


• Chúng ta cần phải tạo layout cho mỗi ô của ListView. Đây là 1 layout
đơn giản chỉ gồm 1 ImageView và 1 TextView.
• Bây giờ, chúng ta có thể tạo 1 custom adapter cho ListView. Bạn hãy tạo
mới 1 class và đặt tên nó là ContactAdapter và kế thừa BaseAdapter
class.
6. Lấy dữ liệu từ database và đưa vào ListView

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 :

var ContactAdapterObj = ContactAdapter(this, ContactList)


contact_list.adapter = ContactAdapterObj
7. Xử lý sự kiện click trong ListView

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 ->
}

Tương tự cho bắt sự kiện click với Button.


Chúng ta sẽ đi đến activity ContactManager khi button được nhấn. Activity ContactManager sẽ
chứa 1 form để thêm và chỉnh sửa liên hệ.

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.

- Chúng ta sử dụng các hàm AddContact(), UpdateContact() and


RemoveContact() của DatabaseHandler, đọc dữ liệu từ EditText và truyền nó
vào form của ContentValue.
Kết luận

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

You might also like