База данных SQL Lite не создает Android - PullRequest
0 голосов
/ 26 ноября 2018

У меня очень простой код. Я пытаюсь создать базу данных 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);

}
}

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

В папке моих приложений нет папки с базой данных.

База данных создается не внутри папки вашего приложения, а в этой папке:

/data/data/com.yourpackagename/databases/
0 голосов
/ 26 ноября 2018

База данных не будет создана, пока вы не попытаетесь что-то с ней сделать.Только тогда (когда вызывается getWritableDatabase или getReadableDatabase) база данных будет создана.

Таким образом, вы можете попробовать: -

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

И тогда база данных будет создана.

  • Обратите внимание, что вышеизложенное не означает, как вы обычно обращаетесь к базе данных, это быстрое решение.Обычно у вас есть доступ к методам в классе (возможно, в классе DatabaseHelper).

PS ваш onUpgrade метод очень вероятно потерпит неудачу, если вы измените номер версии (4-й параметр (который является1) когда звонишь супер).То есть onUpgrade вызывает onCreate, поскольку таблица существует, вы получите ошибку.Вы обычно DROP за столом до вызова onCreate).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...