Создание таблицы в 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);
...
Рекомендуется создавать с использованием констант. Это поможет вам, когда вы захотите внести некоторые изменения в таблицу позже