Создание таблицы в Android

Первый пост для меня. Я впервые увлекаюсь разработкой для Android, и у меня ограниченный опыт программирования на Java. На мой вопрос...

Какой метод предпочтительнее при создании нескольких таблиц в классе dbHelper?

Инициализация переменных для хранения строк создания...

private static final String DATABASE_CREATE =
            "create table notes (_id integer primary key autoincrement, "+
            "title text not null, body text not null);";

db.execSQL(DATABASE_CREATE);

или просто...

db.execSQL("create table notes (_id integer primary key autoincrement, "+
            "title text not null, body text not null);"
);

Я видел, как это делается в обоих направлениях, и я пытаюсь понять, почему больше кода будет лучше, чем меньше.

Спасибо!

3 ответа

@MrCleanX Делай как это.

public class DatabaseHandler extends SQLiteOpenHelper {

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "contactsManager";

// Contacts table name
private static final String TABLE_CONTACTS = "contacts";

// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_PH_NO = "phone_number";

public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
            + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
            + KEY_PH_NO + " TEXT" + ")";
    db.execSQL(CREATE_CONTACTS_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);

    // Create tables again
    onCreate(db);
}

Лично я предпочитаю хранить их в окончательных статических строковых переменных, чтобы я мог легко редактировать их в одном месте, и таким образом мне было бы легче прочитать его и изменить что-то, что может применяться к нескольким базам данных. Я думаю, что это наиболее предпочтительный способ большинством разработчиков.

public class myVariables {
     public final static String firstTable = "firstTableCreationQuery";
     public final static String secondTable = "secondTableCreationQuery";
}

И вы можете получить к ним доступ очень легко

...
db.execSQL(myVariables.firstTable);
db.execSQL(myVariables.secondTable);
...

Рекомендуется создавать с использованием констант. Это поможет вам, когда вы захотите внести некоторые изменения в таблицу позже

Другие вопросы по тегам