Android应用程序创建表
我正在使用SQLite为我的应用程序创建一个数据库表。我在网上搜索过,但还没有找到答案:我需要先创建一个数据库,还是每个应用都有一个默认数据库 我已经编写了以下DBHelper类。它在一个单独的文件中。当应用程序启动时,我如何称呼它Android应用程序创建表,android,database,sqlite,create-table,Android,Database,Sqlite,Create Table,我正在使用SQLite为我的应用程序创建一个数据库表。我在网上搜索过,但还没有找到答案:我需要先创建一个数据库,还是每个应用都有一个默认数据库 我已经编写了以下DBHelper类。它在一个单独的文件中。当应用程序启动时,我如何称呼它 public class DataBaseHelper extends SQLiteOpenHelper{ final String CREAT_TABLE = "CREATE TABLE IF NOT EXIST `employee` ("+ "
public class DataBaseHelper extends SQLiteOpenHelper{
final String CREAT_TABLE = "CREATE TABLE IF NOT EXIST `employee` ("+
"`id` int(11) NOT NULL AUTO_INCREMENT,"+
"`firstName` varchar(30) NOT NULL,"+
"`lastName` varchar(30) NOT NULL,"+
"PRIMARY KEY (`id`)"+
") ;";
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREAT_TABLE);
}
}
在构造函数中声明数据库名称
public DataBaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
在构造函数中声明数据库名称
public DataBaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
您不必自己创建数据库。 在调用OpenHelper的超级构造函数时,可以指定数据库名(sqlite文件名)。 这将在需要时使用该名称创建或更新数据库(取决于您发送的版本号与当前版本号元数据) 我不知道你的构造器是什么样子的,但假设它看起来像
public DatabaseHelper(final Context context) {
super(context, "mydatabase", null, 0);
}
然后,当您调用getReadableDatabase()或getWritableDatabase()时,SQLiteOpenHelper将创建一个名为“mydatabase”的数据库。一切就绪。您不必自己创建数据库。 在调用OpenHelper的超级构造函数时,可以指定数据库名(sqlite文件名)。 这将在需要时使用该名称创建或更新数据库(取决于您发送的版本号与当前版本号元数据) 我不知道你的构造器是什么样子的,但假设它看起来像
public DatabaseHelper(final Context context) {
super(context, "mydatabase", null, 0);
}
然后,当您调用getReadableDatabase()或getWritableDatabase()时,SQLiteOpenHelper将创建一个名为“mydatabase”的数据库。都准备好了。谢谢。我如何调用这个helper函数在我的主活动中创建另一个文件/类中的表?helper负责大部分工作。只需重写
public abstract void onCreate(SQLiteDatabase db)
并在那里创建表。如果您希望在升级应用程序时支持升级数据库(如果数据库版本增加),则可能需要在onUpgrade中创建表。如果您不关心旧数据,可以删除所有表并在onUpgrade中重新创建它们。只需确保在不增加db版本并以某种方式处理它的情况下不会添加表。否则,当人们由于应用程序升级而缺少表时,你将得到损坏的应用程序。我试图将以下代码添加到我的主要活动中,但没有成功。DataBaseHelper myDbHelper=新的DataBaseHelper(此);好啊但我不可能回答这样一个含糊的说法。它怎么不起作用?它与构造函数匹配吗?我的构造函数看起来像这个公共DataBaseHelper(上下文){super(Context,DB_NAME,null,1);this.myContext=Context;}。但是当主活动执行'newdatabasehelper()'语句时,似乎没有调用onCreate方法。我在db.execSQL()语句中设置了一个断点,但它被忽略了。谢谢。我如何调用这个helper函数在我的主活动中创建另一个文件/类中的表?helper负责大部分工作。只需重写public abstract void onCreate(SQLiteDatabase db)
并在那里创建表。如果您希望在升级应用程序时支持升级数据库(如果数据库版本增加),则可能需要在onUpgrade中创建表。如果您不关心旧数据,可以删除所有表并在onUpgrade中重新创建它们。只需确保在不增加db版本并以某种方式处理它的情况下不会添加表。否则,当人们由于应用程序升级而缺少表时,你将得到损坏的应用程序。我试图将以下代码添加到我的主要活动中,但没有成功。DataBaseHelper myDbHelper=新的DataBaseHelper(此);好啊但我不可能回答这样一个含糊的说法。它怎么不起作用?它与构造函数匹配吗?我的构造函数看起来像这个公共DataBaseHelper(上下文){super(Context,DB_NAME,null,1);this.myContext=Context;}。但是当主活动执行'newdatabasehelper()'语句时,似乎没有调用onCreate方法。我在db.execSQL()语句中设置了一个断点,但它被忽略了。