首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sqlite android中我应该在哪里插入值?

在sqlite android中我应该在哪里插入值?
EN

Stack Overflow用户
提问于 2012-01-23 20:10:55
回答 4查看 487关注 0票数 1

当我在sqlite android中插入值时,是只发生一次还是每次我运行应用程序时都会创建数据库?

具体地说,我有将填充列表的类别(食品、饮料....etc)。

我应该把我的insert方法放在哪里?在我的dbHelper类中还是在需要数据的类中?

代码语言:javascript
复制
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是:

代码语言:javascript
复制
   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);
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-23 20:17:51

只有当数据库不存在时,才会创建它。如果有值只需要插入一次,那么应该将它们放在dbHelper类的onCreate中。

票数 1
EN

Stack Overflow用户

发布于 2012-01-23 20:18:11

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

票数 0
EN

Stack Overflow用户

发布于 2012-01-23 20:18:58

把它放在你真正想要在特定事件/实例上插入数据的功能的地方。您可以在dbHelpr中定义DB的状态(表行和列),并在活动中执行insert、delete等操作。

是的,只有当你创建dbHelper的对象并执行db._exec命令时,才会创建DB。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8971369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档