2012-01-23 3 views
1

Когда я вставляю значения в sqlite android, это происходит один раз или база данных создается каждый раз при запуске моего приложения?где я вставляю значения в sqlite android

В частности, у меня есть категории, которые будут заполнять список (еда, напитки .... и т. Д.).

Где я могу поместить свой метод вставки? В моем классе dbHelper или классе, который нуждается в данных?

public class ShoppingCategories extends ListActivity{ 
    private AppSQLite mDbHelper; 
    private Cursor mNotesCursor; 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mDbHelper = new AppSQLite(this); 
    insertShoppingCategories(); 
} 

public void insertShoppingCategories(){ 
    mDbHelper.open(); 
    long id; 
    id = mDbHelper.createShoppingCategory("food", 5, "@drawable/ic_launcher"); 
    id = mDbHelper.createShoppingCategory("drink", 3, "@drawable/ic_launcher"); 

    mDbHelper.close(); 
} 

и createShoppingCategory из класса dbHelper является:

public long createShoppingCategory(String name, int priority, String icon) { 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(KEY_NAME, name); 
    initialValues.put(KEY_PRIORITY, priority); 
    initialValues.put(KEY_ICON, icon); 

    return mDb.insert(tShopCateg, null, initialValues); 
} 

ответ

1

База данных создается, только если она не существует. Если значения необходимо вставлять только один раз, вы должны поместить их внутри onCreate в свой класс dbHelper.

+0

большое спасибо –

0

База данных создается один раз при создании первого экземпляра mDbHelper.open(); (это может измениться в зависимости от вашей реализации класса DB Helper onCreate()). Данные, которые вы вставляете в БД, остаются в БД даже после закрытия приложения (это причина наличия БД). Вы используете функцию вставки, когда вам нужно постоянно сохранять ввод данных в базе данных.

0

Поместите его там, где вы действительно хотите иметь функциональные возможности для вставки данных в конкретное событие/экземпляр. Вы определяете, как вы будете DB (строки таблицы и столбец) в dbHelpr и выполняете операцию, например insert delete в активности.

И да, DB создается только при первом запуске вашего приложения при создании объекта dbHelper и выполняется команда db._exec.

0

Как только ваша база данных будет создана, она будет воссоздана только при изменении вашей версии БД или при очистке данных из настроек >> Приложение >> Управление Приложением >> Очистить данные. И если вы хотите вставить свои данные один раз, тогда вы должны поместить этот код в класс onCreat() класса dbHelper.

Смежные вопросы