首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓:创建SQLite数据库和表的最佳位置是什么?

安卓:创建SQLite数据库和表的最佳位置是什么?
EN

Stack Overflow用户
提问于 2012-06-04 22:35:32
回答 4查看 1.1K关注 0票数 0

我必须在我的android应用程序中创建近5-6个表。创建SQLite数据库和5-6个表的最佳位置是什么?我可以在初始活动启动时编写所有这些逻辑(使用SQLite打开助手方法),但如果我这样做,它将在每次初始活动启动时被调用。这意味着这些数据库和表的创建逻辑将在每次应用程序launches.Can时执行,任何主体都会告诉最佳实践这样做。

EN

回答 4

Stack Overflow用户

发布于 2012-06-04 22:43:46

如果您编写一个类来扩展SQLiteOpenHelper并在onCreate方法中创建表,那么它将只执行一次。仅当您从设备中完全删除数据/应用程序时,帮助器才会重新创建数据。

来自第一次创建数据库时调用的developer.android.com:。这是创建表和初始表填充的地方。

给你更多的信息。在用于扩展SQLiteOpenHelper的类的构造函数中,调用超级构造函数,它接受一些参数。其中之一是数据库版本。

如果传递给超级构造函数的这个db_version与最后传递的那个不同,就会调用onUpgrade方法,在onUpgrade()方法中可以调用onCreate()

所以:

  1. delete data/app
  2. 导致调用onUpgrade,后者调用onCreate()

是创建/续订/删除数据库的方法

票数 1
EN

Stack Overflow用户

发布于 2012-06-04 22:43:27

您可以在主活动中创建数据库和表

但在创建数据库之前,您可以检查

代码语言:javascript
运行
复制
if(exits())
{
   // do not create
}
else
{
   // create here
}
票数 0
EN

Stack Overflow用户

发布于 2012-06-04 22:43:48

就个人而言,我使用选项:CREATE TABLE IF NOT EXISTS

所以这个打开的帮助器有这个参数:

代码语言:javascript
运行
复制
 private static final int VERSION_BDD = 1;

我认为openHelper不会在每次启动时重新创建每个表。

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

https://stackoverflow.com/questions/10883110

复制
相关文章

相似问题

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