当我在sqlite android中插入值时,是只发生一次还是每次我运行应用程序时都会创建数据库?
具体地说,我有将填充列表的类别(食品、饮料....etc)。
我应该把我的insert方法放在哪里?在我的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);
}发布于 2012-01-23 20:17:51
只有当数据库不存在时,才会创建它。如果有值只需要插入一次,那么应该将它们放在dbHelper类的onCreate中。
发布于 2012-01-23 20:18:11
数据库在创建mDbHelper.open();的第一个实例时创建一次(这可能会根据DB Helper类onCreate()方法的实现而变化)。您在数据库中插入的数据即使在应用程序关闭后仍会保留在数据库中(这就是拥有数据库的原因)。当您需要在数据库中持久地保存用户输入时,可以使用insert函数。
发布于 2012-01-23 20:18:58
把它放在你真正想要在特定事件/实例上插入数据的功能的地方。您可以在dbHelpr中定义DB的状态(表行和列),并在活动中执行insert、delete等操作。
是的,只有当你创建dbHelper的对象并执行db._exec命令时,才会创建DB。
https://stackoverflow.com/questions/8971369
复制相似问题