Sqlite là gì

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ơ phiên bản Lưu trữ dữ liệu với SQLite

Dẫn nhập

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

You watching: Sqlite là gì

Tuy nhiên cùng với hầu như ứng dụng đề nghị thực hiện khối lượng tài liệu lớn hơn, chúng ta đang buộc phải cách tàng trữ khác. Và đặc biệt là với dạng dữ liệu bao gồm cấu tạo, phải truy vấn trong tương lai theo dạng truy vấn thì không gì thích hợp hơn cơ sở tài liệu (Database).

Thật ngon miệng là Android (với cả iOS) gồm hỗ trợ SQLite – một hệ cơ sở dữ liệu mối cung cấp mở. Bài học này chúng ta sẽ thuộc khám phá về nó.

Nội dung

Để đọc gọi bài xích này tốt nhất các bạn đề xuất bao gồm kiến thức cơ bản về các 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, bọn họ đang cùng tò mò những vấn đề:

SQLite là gì.Những kiểu dữ liệu được hỗ trợ vào SQLite.Viết một ứng dụng nhỏ tuổi để thêm / xoá tên trong SQLite.

SQLite là…

Một hệ đạ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 các đại lý tài liệu quan hệ giới tính (standard relational database).Được tích thích hợp vào đều đồ vật Android, không bắt buộc thiết đặt với triển khai cấu hình quản trị.Quý Khách chỉ cần viết câu lệnh sinh sản bảng và update bảng, sót lại vấn đề cai quản Android sẽ vày hệ quản lý và điều hành phụ trách nát.

SQLite hỗ trợ những phong cách dữ liệu

TEXT (vnạp năng lượng phiên bản thường).INTEGER (số nguyên ổn, nhưng mà tương tự với kiểu Long trong Java).REAL (số thực, tương tự cùng với Double trong Java).

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

Tất cả những các loại tài liệu khác hồ hết đề nghị biến hóa sang trọng 3 dạng bên trên nhằm hoàn toàn có thể cyếu vào trong bảng của SQLite.Tuy nhiên SQLite ko chất vấn tài liệu. Tức là bạn cũng có thể ckém dữ liệu TEXT vào column dữ liệu dạng INTEGER.

Việc truy cập vào SQLite đang dẫn mang lại truy vấn vào tệp tin hệ thống. Do đó thời hạn tiến hành đã lâu dài hơn so với các thao tác khác. Cũng vì vậy nhưng mà việc truy vấn vấn SQLite khuyến cáo nên tiến hành bất nhất quán (Asynchronous).

Nếu nhỏng áp dụng của doanh nghiệp tạo ra bảng, mặc định nó đã ở ở:

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

Thật xuống đường dẫn bên trên được cấu thành tự hầu như khí cụ sau:

DATA: Đường dẫn này được làm cho trường đoản cú kết quả 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, lúc tạo thành bảng bạn đặt cụ nào thì nó ra gắng này.

Kiến trúc của SQLite

Package

Package app android.database cung ứng tất cả các lớp áp dụng nhằm làm việc với cơ sở dữ liệu.

Package game android.database.sqlite cung ứng các lớp làm việc với SQLite thích hợp.

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

Để tạo nên cùng nâng cấp cửa hàng dữ liệu vào vận dụng Android, các bạn nên kế thừa trường đoản cú lớp SQLiteOpenHelper, gọi ra hàm super() để lấy những method quan trọng tự lớp phụ thân, sau đó hướng dẫn và chỉ định tên database và phiên phiên bản database.

Trong lớp đã sinh sản chúng ta đề nghị override 2 hàm sau:

onCreate(): Call Khi database được truy cập, tuy vậy không được tạo ngừng.onUpgrade(): hotline ra Khi phiên phiên bản database được nâng lên. Chụ ý là phiên phiên bản database chỉ tất cả tăng chứ không bớt.

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

See more: Cỏ Vetiver Là Gì - Cã´Ng DụNg Vã  LợI íCh CủA Cỏ Vetiver

Lớp SQLiteOpenHelper hỗ trợ 2 cách làm để lấy database:

getReadableDatabase(): Lấy ra database dạng chỉ phát âm.getWriteableDatabase(): Lấy ra database dạng ghi được.

Các bảng đại lý tài liệu phần đông áp dụng một khoá chính là _id. Có những làm việc các đại lý tài liệu chính được dựa trên loại khoá này.

Chú ý: Do _id là phong cách INTEGER vào bảng SQLite, mà lại dạng hình đó lại tương xứng cùng với Long vào Java, chúng ta chăm chú Lúc áp dụng.

Một lời khuyên được giới thiệu sinh hoạt đó là từng Mã Sản Phẩm đề xuất khớp ứng với 1 bảng, mỗi bảng bao gồm cách tiến hành onCreate và onUpgrade riêng rẽ, sau đây vẫn đọc dễ dàng rộng.

SQLiteDatabase

SQLiteDatabase là lớp cơ phiên bản dùng để làm vấn đề với SQLite vào Android, và nó cũng cung ứng cách thức để gia công câu hỏi cùng với database thường thì như sửa /xoá /mlàm việc /đóng góp database. Cụ thể là phần lớn cách làm sau:

insert()update()delete()

Thêm vào đó, nó cũng cung cấp cách tiến hành execSQL, được cho phép triển khai trực tiếp câu lệnh truy nã vấn SQL.

Dữ liệu vào bảng thường xuyên được tđê mê chiếu dạng key-value, vậy thì nó được biểu hiện vào Java cố nào?

Câu vấn đáp là ContentValues. “key” thể hiện công năng quý giá cùng “value” mô tả cực hiếm khớp ứng trong những bạn dạng ghi.

- “Dài mẫu quá” – một chúng ta lười phát âm cho thấy thêm.

Vậy thì phát âm nđính thêm gọn: Nó dùng để làm ckém hoặc cập nhật bạn dạng ghi vào Database là đầy đủ rồi.

rawQuery(): Chấp dìm lệnh truy vấn Squốc lộ thẳng.query(): Phương thơm thức này thì… Chưa hẳn là dễ rộng tuy thế an toàn rộng, nó cung ứng hình ảnh (interface) để lập trình sẵn viên viết lệnh truy vấn vấn thuần cùng với Java hơn một chút ít.

Bên cạnh đó chúng ta còn có lớp SQLQueryBuilder, dùng để làm viết câu lệnh tróc nã vấn Squốc lộ tiện lợi hơn thế nữa.

Ví dụ: rawQuery()

Cursor cursor = getReadableDatabase(). rawQuery("select * from user where _id = ?", new String<> id );Câu lệnh bên trên sử dụng nhằm chọn toàn bộ phần đa bản ghi trong bảng “user”.

Ví dụ: query()

Chúng ta tất cả tróc nã vấn bằng phương 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 đang chọn toàn bộ các bản ghi đựng các cột tất cả key là KEY_ROWID, KEY_CATEGORY,…

Bảng sau biểu thị những tsi số đầu vào của cách thức query()

*

Với query() thì khi dùng tđam mê số whereClause, chúng ta ko phải thêm chữ “WHERE” vào. Ví dụ: Chỉ đề nghị như thế này là đủ: “_id=69 & summary=?”

Nếu có mức giá trị trợ thời duy trì (khu vực lốt ? ý) thì các bạn thêm chúng vào ngơi nghỉ selectionArgs.

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

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

Kết luận

Qua bài xích này bọn họ vẫn cầm được SQLite là gì, các lớp làm việc cùng với SQLite và những hàm truy vấn vấn SQLite.

See more: "Các Nội Dung Tiếng Anh Là Gì ? Nội Dung Tiếng Anh Là Gì

Bài sau, chúng ta đã có tác dụng một vận dụng nhỏ để thêm và xoá list vào SQLite, cũng tương tự làm cho quen thuộc cùng 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 vướng lại comment hoặc góp ý của mình nhằm cách tân và phát triển nội dung bài viết xuất sắc hơn. Đừng quên “Luyện tập – Thử thách – Không không tự tin khó”.


Chuyên mục: Giải Đáp