SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

khởi tạo cơ sở dữ liệu sqlite android

Các câu trả lời khác dường như không trả lời được cách thực sự điền vào cơ sở dữ liệu với các giá trị ban đầu, vì vậy tôi sẽ chia sẻ cách tôi đã làm ở đây.

Về cơ bản, bạn lưu các cột cơ sở dữ liệu của mình dưới dạng mảng chuỗi trong tệp xml. Tôi sẽ chỉ hiển thị một mảng nhưng bạn có thể làm nhiều hơn cho các cột khác. (Tuy nhiên, bạn cần phải cẩn thận, với nhiều cột không làm rối trật tự mảng và do đó làm rối các hàng cơ sở dữ liệu của bạn.)

Tạo tệp /res/values/arrays.xml và thêm mảng vào đó.

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="my_array">

            <item>string 1</item>
            <item>string 2</item>
            <item>string 3</item>
            <item>string 4</item>
            <item>string 5</item>

    </string-array>

</resources>

Sau đó, bạn có thể nhận được mảng đó khi bạn tạo cơ sở dữ liệu trong lớp trợ giúp của mình. Đây là những gì tôi đã làm:

private static class DatabaseHelper extends SQLiteOpenHelper {

    private final Context fContext;

    // constructor
    DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        fContext = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + TABLE_NAME + " ("
                + FIRST_COLUMN + " INTEGER PRIMARY KEY,"
                + SECOND_COLUMN + " TEXT NOT NULL,"
                + THIRD_COLUMN + " INTEGER,"
                + FOURTH_COLUMN + " TEXT NOT NULL"
                + ");");

        // Initialize the db with values from my_array.xml
        final int DEFAULT_THIRD_COLUMN = 1;
        final String DEFAULT_FOURTH_COLUMN = "";
        ContentValues values = new ContentValues();
        Resources res = fContext.getResources();
        String[] myArray = res.getStringArray(R.array.my_array);
        for (String item : myArray){
            values.put(SECOND_COLUMN, item);
            values.put(THIRD_COLUMN, DEFAULT_THIRD_COLUMN);
            values.put(FOURTH_COLUMN, DEFAULT_FOURTH_COLUMN);
            db.insert(TABLE_NAME, null, values);
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);

    }
}

Xem các liên kết sau để được trợ giúp thêm:

  • Tài nguyên chuỗi - Tài liệu về mảng chuỗi
  • Android:Điền vào một bảng từ tệp tài nguyên bằng cách sử dụng mảng chuỗi (SQLite)

Một điều khác mà tôi đã làm là tạo cơ sở dữ liệu trước và sau đó chỉ cần sao chép nó vào thư mục cơ sở dữ liệu khi ứng dụng được cài đặt. Điều đó có thể hoạt động tốt hơn nếu bạn có một lượng lớn dữ liệu và bạn không muốn tải xuống cơ sở dữ liệu từ Internet. Nếu bạn muốn sao chép cơ sở dữ liệu của mình, hãy xem câu trả lời này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn vào Cơ sở dữ liệu SQLite android

  2. 2 cách trả về giá trị không phải số trong SQLite

  3. Truy vấn con SQLite

  4. Xuất cơ sở dữ liệu SQLite sang tệp CSV

  5. Android - SQLite - CHỌN GIỮA NGÀY1 VÀ NGÀY2