Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android数据库在应用程序启动前定位数据_Android_Database_Sqlite_Select_Insert - Fatal编程技术网

Android数据库在应用程序启动前定位数据

Android数据库在应用程序启动前定位数据,android,database,sqlite,select,insert,Android,Database,Sqlite,Select,Insert,我只需要选择操作。因此,应该在应用程序启动之前插入数据。最好的方法是什么?使用的子类访问数据库。创建数据库时,onCreate将被调用一次 要使用数据库,您可以执行以下操作: DBHelper db = new DBHelper(context); db.getReadableDatabase().query(....); db.close(); 要扩展SQLiteOpenHelper请执行以下操作(创建表的sql未经测试!): }谢谢您的回复,但我还有更多问题要问。我正在使用一个类,比如DB

我只需要选择操作。因此,应该在应用程序启动之前插入数据。最好的方法是什么?

使用的子类访问数据库。创建数据库时,
onCreate
将被调用一次

要使用数据库,您可以执行以下操作:

DBHelper db = new DBHelper(context);
db.getReadableDatabase().query(....);
db.close();
要扩展
SQLiteOpenHelper
请执行以下操作(创建表的sql未经测试!):


}

谢谢您的回复,但我还有更多问题要问。我正在使用一个类,比如DBHelper,在另一个类中(我称之为DBAdapter),我正在创建一个DBHelper实例,就像您所做的那样。但是,每次应用程序启动时都会调用它。我想创建表并插入数据一次。我怎样才能解决这个问题?编辑:在onUpgrade方法中,我将删除所有表并再次调用onCreate。这是一个问题吗?完全可以放弃一切,从头开始重新创建。如果您想通过在onUpgrade中调用onCreate来实现这一点,也可以。谢谢,但是如何避免每次应用程序启动时都进行插入操作呢?我正在DBAdapter中创建DBHelper的实例,在main活动中,我正在创建DBAdapter的实例。在创建数据库文件时,onCreate()只调用一次!自上次启动以来,当数据库_版本发生更改时,只调用一次onUpdate()。每次应用程序打开数据库时都会调用onOpen()。
public class DBHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "database.db";
private static final Integer DATABASE_VERSION = 1;


DBHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}


/*
 * Called ONCE on the very first db access (when the db file is created)
 */
@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE mytable (_id PRIMARY KEY AUTOINCREMENT, value TEXT); \n" +
            "INSERT INTO mytable (value) VALUES ('data'));");
}

/*
 * Called every time you open a database
 */
@Override
public void onOpen(SQLiteDatabase db) {
}

/*
 * Called ONCE if DATABASE_VERSION has changed since the last instantiation of DBHelper
 */
    @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}