gpt4 book ai didi

android - SQLite 数据库不创建 android

转载 作者:行者123 更新时间:2023-11-30 05:12:32 31 4
gpt4 key购买 nike

我有一个非常简单的代码,我正在尝试创建 SQL lite 数据库,但是当我检查我的 DEVICE FILE EXPLORER 文件夹时它没有创建,我的应用程序文件夹下没有任何数据库文件夹。这是代码:DatabaseHelper.java

package com.example.ali.schoolapp;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Student.db";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db = this.getWritableDatabase();
db.execSQL("CREATE TABLE Items " + " (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT, description TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onCreate(db);
}
}

MainActivity.java

package com.example.ali.schoolapp;      
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

DatabaseHelper myDb;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

myDb = new DatabaseHelper(this);

}
}

最佳答案

在您尝试对它做一些事情之前,数据库不会被创建。只有这样(调用 getWritableDatabase 或 getReadableDatabase 时)才会创建数据库。

所以你可以试试:-

myDb = new DatabaseHelper(this); //<<<<<<<<<<< EXISTING LINE
Cursor csr = myDB.getWritableDatabase().query("Items",null,null,null,null,null,null);
csr.close();

然后数据库就创建好了。

  • 请注意,以上内容不是您通常访问数据库的方式,而是一种快速解决方法。通常您会访问类中的方法(可能在 DatabaseHelper 类中)。

附言如果您在调用 super 时更改版本号(第 4 个参数(即 1)),您的 onUpgrade 方法很可能会失败。即当表存在时 onUpgrade 调用 onCreate 你会得到一个错误。你通常会 DROP调用 onCreate 之前的表)。

关于android - SQLite 数据库不创建 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53484000/

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