Tạo Database từ XML trong Android.

Để tạo 1 Database cho 1 ứng dụng trong Android có ít nhất 3 cách.

– Cách 1: Tạo Database từ Plugin SQLite Manager của Firefox sau đó copy vào database trong ứng dụng.

– Cách 2: Tạo Database bằng execSQL sau đó gắn các giá trị vào ngay trong java thông qua sự giúp đỡ của SQLiteOpenHelper. Cách này bất lợi là code sẽ rất dài nếu Database lớn và khi chỉnh sửa sẽ rất mất thời gian và khó quan sát.

– Cách 3: Cũng tạo Database bằng execSQL thông qua sự giúp đỡ của SQLiteOpenHelper. Tuy nhiên việc gắn các giá trị của Database sẽ được chuyển về 1 file XML, giúp cho người làm dễ dàng hơn trong việc chỉnh sửa Database.

Trong bài này tôi muốn giới thiệu việc tạo Database theo cách 3. Theo cách này, việc tạo bảng và gắn các giá trị vào bảng được viết trên XML. VD ta cần 1 bảng có các giá trị “name”, “age” và “address”.

File XML sẽ có dạng như sau:

<sql>
<statement>CREATE TABLE IF NOT EXISTS myTable ( _id INTEGER PRIMARY KEY AUTOINCREMENT,  name TEXT,  age TEXT,  address TEXT)</statement>
<statement><![CDATA[INSERT INTO myTable VALUES(1,'name 1','25','address 1')]]></statement>
<statement><![CDATA[INSERT INTO myTable VALUES(2,'name 2','30','address 2')]]></statement>
<statement><![CDATA[INSERT INTO myTable VALUES(3,'name 3','33','address 3')]]></statement>
<statement><![CDATA[INSERT INTO myTable VALUES(4,'name 4','50','address 4')]]></statement>
</sql>

Ngoài ra chỉ cần thêm 2 class. Đầu tiên là DatabaseHelper.java với extends SQLiteOpenHelper. Class này có nhiệm vụ tạo Database và thực hiện các lệnh trong XML thông qua execSQL.
Class thứ 2 có chứa câu lệnh gọi đến class DatabaseHelper. Khi đó Database sẽ được tạo ra.

DatabaseHelper dbHelper = new DatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();

Các bạn có thể download source của VD cơ bản này.

Download