Kchất hóa học Lập trình Lập trình Android Kchất hóa học lập trình Android cơ bạn dạng Lưu trữ dữ liệu với SQLite

Dẫn nhập

Tại những bài học trước, chúng ta đang cùng nhau khám phá về CÁCH LƯU TRỮ DỮ LIỆU ĐƠN GIẢN DẠNG KEY - VALUE. Cách này phù hợp Khi đề xuất lưu giữ tài liệu nhỏ tuổi, ví như thông tin đăng nhập, cookie, hoặc một số trong những điều khiển vào áp dụng.

Bạn đang xem: Sqlite là gì

Tuy nhiên với đông đảo áp dụng buộc phải sử dụng khối lượng dữ liệu to hơn, họ sẽ đề xuất cách tàng trữ khác. Và nhất là cùng với dạng dữ liệu tất cả cấu tạo, buộc phải truy cập sau này theo dạng truy nã vấn thì ko gì phù hợp hơn cơ sở tài liệu (Database).

Thật ngon miệng là Android (với cả iOS) bao gồm cung cấp SQLite – một hệ cơ sở dữ liệu mối cung cấp mở. Bài học này chúng ta vẫn cùng tò mò về nó.

Nội dung

Để gọi đọc bài bác này rất tốt các bạn yêu cầu tất cả kỹ năng cơ phiên bản về những phần:

Biết viết một vài câu lệnh SQLite cơ bản (SELECT * FROM… chẳng hạn).

Trong bài học kinh nghiệm này, họ sẽ thuộc tìm hiểu những vấn đề:

SQLite là gì.Những vẻ bên ngoài dữ liệu được cung cấp trong SQLite.Viết một vận dụng nhỏ tuổi để thêm / xoá tên vào SQLite.

SQLite là…

Một hệ các đại lý dữ liệu mối cung cấp mlàm việc.Hỗ trợ cú pháp hệt như SQL.Là dạng đại lý tài liệu tình dục (standard relational database).Được tích vừa lòng vào đầy đủ sản phẩm Android, ko đề nghị thiết lập và tiến hành thông số kỹ thuật cai quản trị.Bạn chỉ cần viết câu lệnh sản xuất bảng và update bảng, còn sót lại câu hỏi làm chủ Android đang vì hệ điều hành quản lý phú trách.

SQLite cung cấp các vẻ bên ngoài dữ liệu

TEXT (văn uống bạn dạng thường).INTEGER (số nguyên ổn, nhưng lại tương đương với đẳng cấp Long vào Java).REAL (số thực, tương đương cùng với Double vào Java).

Hình như SQLite cũng có thể lưu lại được cả hình hình họa ví như biến hóa tài liệu thanh lịch dạng Base64. Lưu ý là cùng với giải pháp này thì dung lượng dữ liệu sẽ ảnh hưởng dội lên.

Tất cả các nhiều loại tài liệu khác hầu hết buộc phải chuyển đổi lịch sự 3 dạng bên trên để rất có thể cyếu vào vào bảng của SQLite.Tuy nhiên SQLite ko kiểm tra tài liệu. Tức là bạn cũng có thể cnhát dữ liệu TEXT vào column tài liệu dạng INTEGER.

Việc truy cập vào SQLite đã dẫn mang đến truy vấn vào file hệ thống. Do kia thời gian triển khai đang lâu dài hơn so với những làm việc khác. Cũng chính vì thế mà lại vấn đề truy vấn vấn SQLite lời khuyên đề xuất thực hiện bất đồng điệu (Asynchronous).

Nếu nlỗi ứng dụng của khách hàng tạo thành bảng, khoác định nó sẽ nằm ở:

DATA/data/TÊN_APP/databases/TÊN_FILE.DB

Thật ra đường dẫn trên được cấu thành từ hầu hết nguyên tắc sau:

DATA: Đường dẫn này được khiến cho từ bỏ tác dụng trả về của hàm Environment.getDataDirectory()TÊN_APP: Tên vận dụng.TÊN_FILE: Tên của bảng, thời điểm sinh sản bảng chúng ta đặt cầm cố như thế nào thì nó ra nỗ lực này.

Kiến trúc của SQLite

Package

Package apk.database cung ứng toàn bộ các lớp áp dụng nhằm thao tác với các đại lý dữ liệu.

Package android.database.sqlite hỗ trợ các lớp thao tác với SQLite dành riêng.

Tạo cùng tăng cấp đại lý dữ liệu cùng với SQLiteOpenHelper

Để chế tạo cùng upgrade các đại lý dữ liệu trong áp dụng Android, các bạn buộc phải thừa kế trường đoản cú lớp SQLiteOpenHelper, hotline ra hàm super() để mang các method cần thiết trường đoản cú lớp phụ thân, tiếp nối hướng dẫn và chỉ định thương hiệu database với phiên phiên bản database.

Trong lớp vẫn tạo thành chúng ta nên override 2 hàm sau:

onCreate(): Call Lúc database được truy cập, tuy nhiên chưa được sản xuất chấm dứt.onUpgrade(): điện thoại tư vấn ra lúc phiên bản database được thổi lên. Chụ ý là phiên phiên bản database chỉ tất cả tăng chứ không hề bớt.

Cả 2 cách tiến hành này hầu như dìm một đối tượng người sử dụng SQLiteDatabase có tác dụng tham số nguồn vào, cũng chính là đối tượng người sử dụng Java thay mặt đại diện mang lại cơ sở tài liệu.

Xem thêm: Tản Mạn Về Mac - Book Pro 2017 Non Touchbar

Lớp SQLiteOpenHelper cung ứng 2 cách thức để mang database:

getReadableDatabase(): Lấy ra database dạng chỉ đọc.getWriteableDatabase(): Lấy ra database dạng ghi được.

Các bảng cơ sở dữ liệu các sử dụng một khoá đó là _id. Có những làm việc cửa hàng tài liệu thiết yếu được dựa trên chiếc khoá này.

Chú ý: Do _id là giao diện INTEGER trong bảng SQLite, mà kiểu dáng đó lại tương xứng cùng với Long trong Java, chúng ta chú ý lúc sử dụng.

Một lời khuim được chỉ dẫn sống đấy là mỗi model nên khớp ứng với một bảng, từng bảng bao gồm thủ tục onCreate cùng onUpgrade riêng biệt, trong tương lai sẽ dễ đọc rộng.

SQLiteDatabase

SQLiteDatabase là lớp cơ bạn dạng sử dụng để làm bài toán cùng với SQLite vào Android, với nó cũng hỗ trợ cách thức để làm Việc cùng với database thông thường nhỏng sửa /xoá /mlàm việc /đóng database. Cụ thể là đều cách tiến hành sau:

insert()update()delete()

Thêm vào đó, nó cũng cung cấp cách làm execSQL, được cho phép tiến hành thẳng câu lệnh truy tìm vấn SQL.

Dữ liệu vào bảng hay được tđê mê chiếu dạng key-value, vậy thì nó được mô tả trong Java rứa nào?

Câu vấn đáp là ContentValues. “key” trình bày tính năng cực hiếm với “value” biểu đạt quý hiếm tương xứng trong những bản ghi.

- “Dài dòng quá” – một bạn lười hiểu cho thấy thêm.

Vậy thì gọi nthêm gọn: Nó dùng làm cyếu hoặc update phiên bản ghi trong Database là đủ rồi.

rawQuery(): Chấp thừa nhận lệnh tróc nã vấn Squốc lộ trực tiếp.query(): Phương thức này thì… không phải là dễ rộng tuy vậy bình an hơn, nó cung cấp bối cảnh (interface) để thiết kế viên viết lệnh truy hỏi vấn thuần cùng với Java rộng một ít.

Bên cạnh đó họ còn tồn tại lớp SQLQueryBuilder, dùng làm viết câu lệnh truy hỏi vấn SQL dễ dàng không chỉ có vậy.

Ví dụ: rawQuery()

Cursor cursor = getReadableDatabase(). rawQuery("select * from user where _id = ?", new String<> id );Câu lệnh trên thực hiện để lựa chọn toàn bộ phần nhiều phiên bản ghi trong bảng “user”.

Ví dụ: query()

Chúng ta bao gồm truy tìm vấn bằng cách thức query()

return database.query(DATABASE_TABLE, new String<> KEY_ROWID, KEY_CATEGORY, KEY_SUMMARY, KEY_DESCRIPTION , null, null, null, null, null);Câu lệnh trên vẫn lựa chọn toàn bộ những bản ghi cất những cột bao gồm key là KEY_ROWID, KEY_CATEGORY,…

Bảng sau thể hiện các tmê say số nguồn vào của cách tiến hành query()

*

Với query() thì khi dùng tmê mệt số whereClause, bọn họ không đề nghị thêm chữ “WHERE” vào. Ví dụ: Chỉ cần như vậy này là đủ: “_id=69 và summary=?”

Nếu có giá trị tạm thời giữ lại (chỗ dấu ? ý) thì các bạn thêm nó vào ngơi nghỉ selectionArgs.

Mỗi truy nã vấn trên hầu như trả về Cursor. Cursor ở chỗ này tức là bé trỏ, nó đại diện thay mặt đến tập các quý giá sẽ truy tìm vấn được, và bản thân nó vẫn “trỏ” vào một trong những cực hiếm trong tập dữ liệu trả về.Tức là sao? Với bí quyết này Android đã tiết kiệm được bộ nhớ, không nhất thiết phải xử lý ồ ạt cả đụn tài liệu trả về nữa.

Để mang toàn bô dữ liệu trả về, ta cần sử dụng getCount().Để nhảy đầm con trỏ tới tiếp sau hoặc bên trên cùng, ta sử dụng moveToNext() với moveToFirst().Để kiểm soát xem bé trỏ sẽ trỏ cho tác dụng ở đầu cuối không, ta cần sử dụng hàm isAfterLast().Cursor hỗ trợ các hàm get*(), ví dụ: getLong(columnIndex), getString(columnIndex),… trong số đó columnIndex là số của cột nhưng bạn đang truy vấn.

Kết luận

Qua bài xích này họ sẽ vắt được SQLite là gì, những lớp làm việc với SQLite với những hàm truy hỏi vấn SQLite.

Xem thêm: Từ Vựng Tiếng Anh Chuyên Ngành Dệt May Tiếng Anh Là Gì ? Ngành Công Nghệ May Tiếng Anh Là Gì

Bài sau, họ đã có tác dụng một ứng dụng nhỏ tuổi nhằm thêm với xoá danh sách vào SQLite, cũng như làm cho quen với KHÁI NIỆM ORM (Object Relational Mapping)

Cảm ơn chúng ta đang theo dõi nội dung bài viết. Hãy giữ lại bình luận hoặc góp ý của chính mình để trở nên tân tiến nội dung bài viết giỏi hơn. Đừng quên “Luyện tập – Thử thách – Không không tự tin khó”.


Chuyên mục: CÔNG NGHỆ
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *