gpt4 book ai didi

java - 适用于 Android 的 SQLite 数据库持久存储

转载 作者:行者123 更新时间:2023-12-01 09:14:09 25 4
gpt4 key购买 nike

我对如何在 Android Studio 中操作 SQL Lite 数据库感到困惑。我想要的是用户能够不断地在数据库中添加和搜索元素。我感到困惑的是,似乎有关此主题的大多数初学者教程都会在每次执行“应用程序”时在 MainActivity 中创建一个数据库,这使我相信新数据库是从头开始创建的,而不是用新数据库更新旧数据库信息(或单独留下并进行查询)。例如,在类名 DatabaseHelper 中,我有 fragment :

 public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CreateTable1String);
db.execSQL(CreateTable2String);
}
... // Then methods to add, query etc.

然后在主要部分:

    public class MainActivity extends Activity {  

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DatabaseHelper db = new DatabaseHelper(this);

... // Then do stuff with the database

}

任何对我的误解的见解都非常感谢。

最佳答案

不,每次运行此代码段时都不会创建数据库。

在您的示例中,onCreate 方法运行创建表的 SQL 脚本。但在发布的代码中没有调用此方法。这并非偶然。您不必显式调用此方法,Android 会在第一次实例化 DatabaseHelper 时调用一次。

在发布的代码中有一个new DatabaseHelper(this);。与您可能的假设相反,这并不意味着将调用 onCreate。创建此类的实例和调用 onCreate 方法是非常不同的事情。

关于java - 适用于 Android 的 SQLite 数据库持久存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com