Android应用程序创建表

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` ("+ "

我正在使用SQLite为我的应用程序创建一个数据库表。我在网上搜索过,但还没有找到答案:我需要先创建一个数据库,还是每个应用都有一个默认数据库

我已经编写了以下DBHelper类。它在一个单独的文件中。当应用程序启动时,我如何称呼它

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()语句中设置了一个断点,但它被忽略了。