我在哪里插入sqlite android中的值

时间:2012-01-23 12:10:55

标签: android sqlite insert

当我在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();
}

和dbHelper类的createShoppingCategory是:

   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);
}

4 个答案:

答案 0 :(得分:1)

仅在数据库不存在时才创建数据库。如果有值,只有在您将onCreate类放入dbHelper内时才需要插入。

答案 1 :(得分:0)

创建mDbHelper.open();的第一个实例时,将创建一次数据库(这可能会根据您对DB Helper类onCreate()方法的实现而改变)。即使应用程序关闭后,您在数据库中插入的数据仍保留在数据库中(这是拥有数据库的原因)。当您需要持久保存数据库中的用户输入时,可以使用insert函数。

答案 2 :(得分:0)

将它放在您真正希望具有在特定事件/实例中插入数据的功能的位置。您可以在dbHelpr中定义数据库的方式(表行和列),并在活动中执行类似插入删除的操作。

是的,只有在创建应用程序的第一次运行时才会创建数据库执行dbHelper和db._exec命令的对象。

答案 3 :(得分:0)

创建数据库后,只有在您的版本的数据库发生更改或从设置中清除数据时才会重新创建数据>>应用程序>>管理应用程序>>清除数据。 如果您想插入一次数据,那么您应该将该代码放在dbHelper类的onCreat()中。