Bài viết được sự cho phép của tác giả Lê Hồng Kỳ
Thông qua bài Sqlite trong android chúng tôi muốn giới thiệu SQLite là một cơ sở dữ liệu mã nguồn mở được sử dụng để lưu trữ dữ liệu dạng văn bản (text) trên thiết bị di động.
SQLite hỗ trợ tất cả các tính năng của cơ sở dữ liệu quan hệ. Để truy cập cơ sở dữ liệu SQLite, bạn không cần phải thiết lập bất kỳ một loại kết nối đến SQLite như JDBC, ODBC,…
SQLite là hệ quản trị cơ sở dữ liệu cho nền tảng mobile như Android, IOS, Windows Phone. SQLite được sử dụng để quản lý thông tin bao gồm các chức năng như lưu trữ và truy xuất thông tin.


SQLite trong Android – Các bước thực hiện
Bước 1: Tạo một lớp kế thừa lớp SQLiteOpenHelper dùng để thao tác với cơ sở dữ liệu. Trong đó ClassName là tên lớp.
public class ClassName extends SQLiteOpenHelper {
//Tạo phương thức khởi tạo
//Override phương thức onCreate
public void onCreate(SQLiteDatabase db) {
String sql = "câu lệnh tạo bảng";
db.execSQL(sql);
}
/*Các phương thức:
thêm dữ liệu, cập nhật dữ liệu,
xóa dữ liệu và truy vấn dữ liệu*/
}
Xây dựng phương thức thêm dữ liệu
public void methodName([parameter]) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(columnName1, value);
cv.put(columnName2, value);
...
db.insert(tableName, null, cv);
}
Xây dựng phương thức cập nhật dữ liệu
public void methodName([parameter]) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(columnName1, value);
cv.put(columnName2, value);
…
String whereClause = "columnName1 = ? …";
String whereArgs[] = {value1,…};
db.update(tableName, cv, whereClause, whereArgs);
}
Xây dựng phương thức xoá dữ liệu
public void methodName([parameter]) {
SQLiteDatabase db = this.getWritableDatabase();
String whereClause = "columnName1 = ? …";
String whereArgs[] = {value1,…};
db.delete(tableName, whereClause, whereArgs);
}
Xây dựng phương thức truy vấn dữ liệu không có điều kiện
public void methodName([parameter]) {
String sql = "select * [or column1,…] from tableName";
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(sql, null);
if(c != null){
c.moveToFirst(); //Về đầu danh sách
do {
Truy vấn dữ liệu sử dụng c.getString(columnIndex);
}while(c.moveToNext());
}
}
Xây dựng phương thức truy vấn dữ liệu có điều kiện
public void methodName([parameter]) {
SQLiteDatabase db = this.getReadableDatabase();
String[] columns = {"column1", "colum2",…};
String selection = "column1 = ? …";
String []selectionArgs = {value1,…};
String groupBy = null;
String having = null;
String orderBy = null;
Cursor c = db.query(tableName, columns, selection, selectionArgs, groupBy, having, orderBy);
if(c!=null){
c.moveToFirst(); //Về đầu danh sách
do {
Truy vấn dữ liệu sử dụng c.getString(columnIndex);
}while(c.moveToNext());
}
}
Bước 2: Sử dụng lớp đã tạo ở bước 1 trong activity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qlsv);
//Khai báo đối tượng
ClassName objectName = new ClassName();
}
Trong đó:
- ClassName là tên lớp đã xây dựng ở bước 1
- objectName là tên đối tượng. Sử dụng đối tượng này để truy xuất các phương thức thêm, cập nhật, xoá hoặc truy vấn dữ liệu
SQLite trong android – Ví dụ mẫu xây dựng ứng dụng quản lý danh sách khách hàng


Màn hình thêm mới khi người dùng chạm vào “Add New”


Khi người dùng chạm vào “SAVE CONTACT“, quay về màn hình chính


Để chỉnh sửa hoặc xoá thông tin khách hàng, người dùng chạm vào khách hàng sau đó chọn thao tác Edit Contact hoặc Delete Contact từ menu


Tham khảo việc làm Android Developer Hồ Chí Minh tại TopDev
SQLite trong android – Các bước thực hiện
Bước 1: Tạo java class tên DBHelper. Code đầy đủ của DBHelper
Bước 2: Tạo activity DisplayContactActivity
Thiết kế layout


Thiết kế menu display_contact: Chuột phải menu -> chọn New -> chọn Menu resource file


Bổ sung đoạn code sau vào display_contact.xml
<item
android:id="@+id/Edit_Contact"
android:orderInCategory="100"
android:title="@string/edit"/>
<item
android:id="@+id/Delete_Contact"
android:orderInCategory="100"
android:title="@string/delete"/>
Thiết kế menu menu_sqlite_sample: Chuột phải menu -> chọn New -> chọn Menu resource file. Bổ sung đoạn code sau vào menu_sqlite_sample.xml
<item android:id="@+id/item1"
android:title="@string/Add_New" >
</item>
Bổ sung đoạn code sau vào string.xml


<string name="Add_New">Thêm</string> <string name="edit">Cập nhật Contact</string> <string name="delete">Xoá Contact</string> <string name="title_activity_display_contact">DisplayContact</string> <string name="name">Name</string> <string name="phone">Phone</string> <string name="email">Email</string> <string name="street">Street</string> <string name="country">City/State/Zip</string> <string name="save">Lưu Contact</string> <string name="deleteContact">Bạn có chắc không?</string> <string name="yes">Đồng ý</string> <string name="no">Không</string>
Viết xử lý cho DisplayContactActivity. Code đầy đủ của DisplayContactActivity
Bước 3: Tạo activity SqliteSampleActivity
Thiết kế layout


Viết xử lý cho SqliteSampleActivity. Code đầy đủ của SqliteSampleActivity
Sqlite trong android – Bài tập thực hành
Xây dựng ứng dụng ToDoList (Danh sách công việc cần thực hiện)
- Tên cơ sở dữ liệu là todolistdb
- Tên bảng dữ liệu todolisttbl, có cấu trúc như sau
| FieldName | Type | Description |
| id | Integer | Khóa chính (Primary Key), kiểu số nguyên tự tăng (AutoIncrement) |
| job | Text | Nội dung công việc cần nhớ |
| date | Text | Thời gian công việc cần phải thực hiện |
Thiết kế giao diện cho ứng


Khi chọn nút lệnh “Thêm”, chuyển sang màn hình cho phép nhập nội dung và thời gian thực hiện công việc (Hình 2). Khi người dùng chọn nút lệnh “Lưu và trở về”, thực hiện lưu nội dung công việc vào cơ sở dữ liệu, quay về màn hình 1 và hiển thị tất cả nội dung công việc đã tạo.


Trường hợp muốn xóa 1 công việc dự định trong danh sách hay tất cả công việc trong danh sách, người dùng chọn và giữ trên mục công việc để hiện lên context menu và chọn chức năng cần thiết. Lưu ý, bổ sung thêm chức năng cho phép người dùng cập nhật lại nội dung và thời gian thực hiện trong context menu.


Bài viết gốc được đăng tải tại giasutinhoc.vn
Bạn có thể xem thêm:
- 8 câu hỏi phỏng vấn dành cho các lập trình viên Mobile app
- Tạo Splash Screen cho Android như thế nào là “chuẩn” nhất?
- Lập trình viên mobile cần học những gì?
Tìm việc làm IT mọi cấp độ tại TopDev



















































Doc Comment Và Javadoc Trong Java
Bài viết được sự cho phép của tác giả Nhựt Danh
Nhắc Lại Kiểu Documentation Comment
Từ bây giờ chúng ta hãy gọi chức năng này bằng một tên chuẩn tiếng Anh cho thống nhất, hãy gọi chức năng này là Documentation Comment, hay gọi tắt là Doc Comment cũng được. Chúng ta đều hiểu nó là cách comment code theo kiểu document vậy.
Tất cả các kiểu comment đều có một điểm giống nhau là khi build, trình biên dịch sẽ bỏ qua chúng, không build comment vào file build cuối cùng. Nhưng, khác với anh em trong họ comment, Doc Comment không đơn thuần chỉ là để comment, chúng được dùng trong một chuyện khác. Công dụng cụ thể của Doc Comment là gì thì mời bạn xem qua mục sau. Dưới đây là một ví dụ sử dụng comment theo kiểu Doc Comment.
Công Dụng Của Doc Comment
Về phía kinh nghiệm code bao lâu nay của mình, mình vẫn rất thích kiểu Doc Comment này hơn các kiểu comment khác, là vì có các lợi ích sau đây.
Thứ nhất, về mặt giải thích cho các dòng code bạn đang làm, thì Doc Comment sẽ luôn rõ ràng hơn do chúng có được sự hỗ trợ về mặt định dạng nổi bật hơn cho các tham số.
Thứ hai, là lợi ích về mặt sử dụng các dòng code có comment theo kiểu Doc Comment này. Thì khi sử dụng các thành phần được comment “chuẩn”, bạn sẽ thấy comment, hay document sẽ xuất hiện ở thanh ngữ cảnh của Eclipse hay InteiJ (bạn dễ dàng nhìn thấy các document này khi đưa chuột vào lớp hay hàm có Doc Comment).
Thứ ba, về mặt xuất xưởng các thư viện. Doc Comment sẽ được một công cụ có tên Javadoc build ra một trang mô tả theo kiểu HTML. Nó là một trang Web được xây dựng hoàn chỉnh và bạn có thể dùng để publish hay nhúng vào trang Web khác. Rất thích hợp để bạn tạo ra các thư viện Java và gửi đến người dùng thư viện của bạn với đầy đủ các hướng dẫn sử dụng các Java code mà bạn xây dựng. Với lợi ích thứ ba này thì mình mời các bạn đến với mục tiếp theo để trải nghiệm nhé.
Thử Tạo Một HTML Document
Bước này chúng ta hãy cũng trải nghiệm việc sử dụng công cụ Javadoc để tạo ra một HTML document xịn xò.
Thật may là Eclipse hay InteliJ đều hỗ trợ các tương tác đến công cụ Javadoc một cách dễ dàng. Bạn hãy chọn một trong hai công cụ này để thực hành theo các chỉ dẫn sau.
Tạo HTML Document trên Eclipse
Với Eclipse. Với project đang mở. Và dĩ nhiên phải có một vài Doc Comment đã được bạn định nghĩa trong source code. Bạn hãy chọn theo menu Project > Generate Javadoc….
Một cửa sổ xuất hiện, bạn hãy để nguyên như mặc định. Chúng là các thiết lập đường dẫn đến file thực thi Javadoc, project cần tạo Javadoc, cũng như nơi mà thành phẩm HTML document được trích xuất ra (đó chính là thư mục /doc bên trong project của bạn).
Hãy đảm bảo các chọn lựa của bạn giống như hình trên. Sau đó nhấn Next. Một cửa sổ chọn lựa khác xuất hiện như sau.
Ở bước trên, bạn hãy nhập vào tiêu đề cho document (mục Document title). Khi này bạn có thể nhấn Finish vì thực chất bước sau nữa cũng không có gì đáng chú ý cả.
Sau một lúc, bạn sẽ thấy xuất hiện thêm một thư mục /doc bên trong project của bạn ở của sổ Package Explorer. Hãy xổ thư mục này ra và tìm đến file index.html và click đúp vào đó, bạn sẽ thấy nội dung document đã được tạo ra tự động y như một trang Web thực thụ vậy. Và đây là những gì chúng ta đã comment vào source code theo dạng Doc Comment.
Bạn hãy thử trải nghiệm bằng cách click chuột đi tới đi lui trong trang Web này để xem Javadoc giúp tạo các hướng dẫn cho code của chúng ta như thế nào.
Ở mục sau chúng ta sẽ tìm hiểu sâu hơn việc tạo document một cách chỉn chu hơn, đầy đủ và chuyên nghiệp hơn như thế nào nhé.
Tham khảo việc làm Java hấp dẫn trên TopDev
Tạo HTML Document Trên InteliJ
Với InteliJ. Với project đang mở. Và dĩ nhiên phải có một vài Doc Comment đã được bạn định nghĩa trong source code. Bạn hãy chọn theo menu Tools > Generate JavaDoc….
Một cửa sổ xuất hiện, bạn hãy để nguyên như mặc định. Chúng là các thiết lập phạm vi áp dụng để tạo HTML document (scope), cấp độ chia sẻ private/package/protected/public. Và thiết lập nơi mà thành phẩm HTML document được trích xuất ra, bạn có thể chỉ định xuất vào thư mục /doc bên trong project của bạn như dưới đây.
Sau khi nhấn OK ở cửa sổ trên, bạn sẽ thấy ngay lập tức Web Browser mặc định trên máy bạn được mở ra với nội dung chính là giới thiệu về project của bạn kèm với các Doc Comment trong đó.
Bạn hãy thử trải nghiệm bằng cách click chuột đi tới đi lui trong trang Web này để xem Javadoc giúp tạo các hướng dẫn cho code của chúng ta như thế nào.
Ở mục sau chúng ta sẽ tìm hiểu sâu hơn việc tạo document một cách chỉn chu hơn, đầy đủ và chuyên nghiệp hơn như thế nào nhé.
Định Dạng Java Doc Thông Qua Sử Dụng Tag
Ở các ví dụ trên đây, bạn đã nhìn thấy một số Tag được dùng trong Javadoc như @author, @version, @since, @param. Và bạn đã hiểu các Tag này giống như các tham số giúp cho Javadoc có thể tạo ra các HTML và truyền các định nghĩa của từng Tag vào HTML như thế nào rồi đúng không nào. Các Tag trong Javadoc thường không ràng buộc một công thức nào kèm theo cả, bạn chỉ cần vận dụng Tag ở những nơi bạn cần HTML làm nổi bật thông tin đó lên thôi, vì dù sao Doc Comment cũng chỉ là một kiểu comment, nên bạn cứ thoải mái sử dụng đi nhé.
Mình sẽ không giải thích dài dòng về Tag nữa mà vào cụ thể việc sử dụng Tag trong Javadoc như thế nào luôn.
@author, @version, @since
Mời bạn xem ví dụ sử dụng Tag và kết quả xuất ra dưới dạng HTML document.
{@code}, @param
Chi tiết về cách sử dụng 2 Tag này được thể hiện qua ví dụ dưới đây.
@deprecated, {@link}
“Hiệu ứng” của các Tag này được minh họa bằng các ví dụ dưới.
@exception, @throws
Hai Tag này có công dụng như nhau. Giúp thêm một thông tin Throws trong document báo hiệu phương thức này sẽ tung ra một exception.
@return, @see
{@value}
Giúp hiển thị giá trị của các static field.
Tham Khảo Thêm Các Định Dạng Khác
Trên đây mình có trình bày qua các định dạng Tag phổ biến trong Javadoc. Tuy nhiên vẫn còn một số định dạng khác, chẳng hạn như vận dụng thêm các thẻ HTML vào Doc Comment, thì bạn có thể làm quen thông qua việc tìm hiểu chính source code của “chính chủ” Oracle, hoặc bạn hãy để ý các Doc Comment từ các source code của các thư viện khác. Đảm bảo bạn sẽ thấy thích và ngộ ra được nhiều phong cách Doc Comment từ các nguồn này, bạn sẽ nhanh “lên tay” hơn cho việc comment cho source code của chính bạn thôi.
Để xem source code của JDK, đơn giản, khi Eclipse hoặc InteliJ đang mở, hãy nhấn giữ phím Ctrl (Windows) hoặc Command (Mac) và click vào lớp được xây dựng sẵn từ JDK. Như ví dụ dưới đây mình mở ra lớp String, bạn sẽ nhanh chóng nhìn thấy source code của lớp này trên chính IDE của bạn.
Hoặc bạn có thể xem ở một số link online cũng được. Như một vài link mình liệt kê sau.
Kết Luận
Chúng ta vừa xem qua các cách sử dụng Doc Comment trong lập trình Java như thế nào. Hi vọng thông qua bài viết này, các bạn sẽ nâng cao hơn tính “thẩm mỹ” và tính dễ đọc đối với các source code của các bạn thông qua việc nâng cao kỹ năng comment. Cũng như hiểu rõ các document được tạo ra như thế nào ở các thư viện mà các bạn đang dùng.
Bài viết gốc được đăng tải tại yellowcodebooks.com
Xem thêm:
Tìm việc làm IT mọi cấp độ tại TopDev