SQL Lite数据库未创建android

时间:2018-11-26 15:08:35

标签: android database sqlite

我有一个非常简单的代码,我正在尝试创建SQL lite数据库,但是当我检查DEVICE FILE EXPLORER文件夹时,没有创建它。我的apps文件夹下没有任何数据库文件夹。 这是代码: 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);

}
}

2 个答案:

答案 0 :(得分:1)

直到您尝试对其进行操作之前,数据库不会被创建。只有这样(当调用getWritableDatabase或getReadableDatabase时)才会创建数据库。

所以您可以尝试:-

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

然后将创建数据库。

  • 请注意,以上并不是您通常访问数据库的方式,这是一种快速解决方案。通常,您可以在一个类中访问方法(也许在DatabaseHelper类中)。

P.S。如果您更改版本号(调用super时的第4个参数(即1)),则您的onUpgrade方法很可能会失败。也就是说,onUpgrade在表存在时调用onCreate,您将得到一个错误。通常,在调用onCreate之前,先DROP表。

答案 1 :(得分:-1)

  

我的apps文件夹下没有任何数据库文件夹

数据库不是在应用程序的文件夹中创建的,而是在此文件夹中创建的:

Android resource compilation failed
Output:  C:\Users\Ravi\AndroidStudioProjects\StudioWallpaper\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:218: error: invalid color.

Command: C:\Users\Ravi\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\b6b322bea45b15306011a11f331994cf\aapt2-3.2.1-4818971-windows\aapt2.exe compile --legacy \
        -o \
        C:\Users\Ravi\AndroidStudioProjects\StudioWallpaper\app\build\intermediates\res\merged\debug \

C:\Users\Ravi\AndroidStudioProjects\StudioWallpaper\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
Daemon:  AAPT2 aapt2-3.2.1-4818971-windows Daemon #0