public OrderDataBaseUtil(Context ctx, String tbname, String cols[], String cons[]) {
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
// super(context, name, factory, version);
/**
* context to use to open or create the database
* name of the database file, or null for an in-memory database
* factory to use for creating cursor objects, or null for the default
* version number of the database (starting at 1); if the database is older, onUpgrade(SQLiteDatabase, int, int) will be used to upgrade the database
*/
tableName = tbname;
columns = cols;
constraints = cons;
Log.i("OrderDataBaseUtil constructor","OrderDataBaseUtil");
//由于这里,onCreate()数据库第一次创建执行,只执行一次,以后不再执行
//所以先判断table存在与否
//不存在,调用onCreate
SQLiteDatabase sdb = openWriteDB();
onCreate(sdb);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i("OrderDataBaseUtil::onCreate","OrderDataBaseUtil");
StringBuilder sql = new StringBuilder();
// if not exists,不需要知道表是否存在,在创建表的时候加上if not exists
sql.append("CREATE TABLE if not exists ").append(tableName); //sql.append("CREATE TABLE ").append(tableName);
sql.append("(").append(DEFAULT_ID).append(",");
for(int i = 0; i < columns.length; i++){
if(i < columns.length -1)
sql.append(columns[i]).append(" ").append(constraints[i]).append(",");
else
sql.append(columns[i]).append(" ").append(constraints[i]);
}
sql.append(")");
Log.i("CREATE_TB==>>", sql.toString());
db.execSQL(sql.toString());
}
分享到:
相关推荐
当我们创建一个继承自SQLiteOpenHelper的子类时,系统会调用两个关键方法:`onCreate()`和`onUpgrade()`. 1. `onCreate(SQLiteDatabase db)`: 这个方法在数据库首次创建时被调用。在这个方法中,你可以编写SQL语句...
`onCreate()` 方法在数据库首次创建时被调用,用于执行创建表等初始化操作。`onUpgrade()` 方法则在数据库升级时调用,你可以在这里处理数据迁移或表结构更新的任务。 创建一个SQLiteOpenHelper的子类,通常需要...
1. **构造函数**:通常我们在自定义的SQLiteOpenHelper子类中初始化数据库的基本信息,如数据库名称和版本号。 ```java public class MyDatabaseHelper extends SQLiteOpenHelper { public MyDatabaseHelper...
`onCreate()` 方法在数据库首次创建时被调用,用于执行初始化操作,比如创建表。`onUpgrade()` 方法则在数据库版本升级时调用,可以用来更新或改变数据库结构。 1. 创建SQLiteOpenHelper子类: 首先,我们需要创建...
`onCreate()`方法在数据库首次创建时被调用,我们可以在这里编写创建表的SQL语句。`onUpgrade()`方法在数据库版本升级时执行,用于更新或修改已有表的结构。 例如: ```java public class MySQLiteOpenHelper ...
3. **onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)**:当数据库版本号增加时,这个方法会被调用。你可以在这里更新表结构或执行其他升级操作。 4. **getWritableDatabase()** 和 **...
SQLiteOpenHelper 的子类,至少需要实现三个方法:构造函数、onCreate() 方法和 onUpgrage() 方法。 在 onCreate() 方法中,你可以对数据库进行初始化和填充数据。在 onUpgrage() 方法中,你可以清除如何把一个...
1. **构造函数**:接收`Context`参数,用于允许数据库被打开或创建。 2. **`open`方法**:尝试打开现有数据库或创建新的数据库实例。如果无法打开或创建,则抛出异常。 3. **`close`方法**:关闭数据库实例。 ```...
在SQLiteOpenHelper的子类中,我们需要定义一个构造函数,传入Context和数据库名,以及可选的数据库版本号。例如: ```java public class MyDatabaseHelper extends SQLiteOpenHelper { public MyDatabaseHelper...
1. **构造函数**:在子类构造函数中调用父类`SQLiteOpenHelper`的构造函数,传递必要的参数,包括上下文环境(如Activity)、数据库名称、游标工厂(通常为`null`)以及表示数据库版本的整数。 2. **onCreate()方法...
- 在这个类中,我们需要定义两个构造函数:一个无参数的构造函数,以及一个带上下文和数据库版本号的构造函数。数据库版本号用于跟踪数据库的变化,每次修改数据库结构时,这个版本号应递增。 ```java public ...
数据库版本管理是通过SQLiteOpenHelper的构造函数中的参数来实现的。每次当数据库版本号增加时,onUpgrade()方法会被调用。你可以在这里执行升级逻辑,比如添加新表、修改已有表结构等。确保在升级过程中保持数据的...
onCreate()方法在数据库首次创建时被调用,用于执行创建表和初始化数据的SQL语句。onUpgrade()方法在数据库需要升级时调用,根据旧版本和新版本的差异来更新数据库结构。 以下是一个简单的SQLiteOpenHelper子类的...
1. 创建数据库:通过继承SQLiteOpenHelper并重写构造函数,指定数据库名、版本号等参数。在onCreate()方法中编写SQL语句创建表。 例如: ```java public class DatabaseHelper extends SQLiteOpenHelper { public ...
- 实现 `SQLiteOpenHelper` 的构造函数、`onCreate()` 和 `onUpgrade()` 方法。 - 构造函数:设置上下文环境、数据库名称、游标工厂和数据库版本。 - `onCreate()`:在这个方法中定义数据库结构,如创建表、索引...
1. **创建数据库**:当应用程序首次运行时,如果数据库不存在,DbOpenHelper的`onCreate()`方法会被调用。在这个方法里,开发者可以编写SQL语句来创建表、索引等数据库结构。 2. **升级数据库**:当数据库版本发生...
1. **创建数据库**:当应用首次运行时,SQLiteOpenHelper的子类会调用`onCreate()`方法,此方法用于创建数据库的结构,即定义表的创建语句。 2. **升级数据库**:随着应用的更新,数据库的结构可能需要改变,比如...
1. **构造函数**:通常,我们会传入上下文(Context)和数据库的名称作为参数,以便在实例化时初始化SQLiteOpenHelper。 ```java public class MyDataBaseOpenHelper extends SQLiteOpenHelper { public ...
A、 在SQLiteOpenHelper的子类当中,必须要有的构造函数 B、该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDataBase对象的时候onCreate 二、创建一个实体person类并且给字段和封装 三、...
1. **构造函数**:在构造函数中调用父类构造函数,提供上下文、数据库名、游标工厂和数据库版本号作为参数。 2. **onCreate()**:此方法用于数据库的初次创建,包括定义表结构和初始数据的插入。 3. **onUpgrade()**...