困惑于SQLiteOpenHelper和创build多个表

我觉得Android开发人员有关在SQLite中保存数据的指导方针真的很缺乏。 当我涉及到多个表格的时候,我对这个一般性的指南是什么感到困惑。

我目前有两个经理向用户界面公开(CRUD)两个不同的实体集。

我是否:

在每个pipe理器中创build一个私有类SQLiteOpenHelper。 每个助手将有自己的onCreate自己的表?

要么

创build一个公共类SQLiteOpenHelper创buildTABLE的?

我没有看到任何明显的优势,使用上面的一个,但我看到他们两个正在使用。 Android对此有何评论?

Solutions Collecting From Web of "困惑于SQLiteOpenHelper和创build多个表"

请使用下面的代码来创build多个表(我现在已经创build了两个表)。 我已经完成了创build和插入的代码。 也..

import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class MyDB { public static final String KEY_ROWID = "_id"; public static final String KEY_FIRSTNAME = "ID"; public static final String KEY_LASTNAME = "CS"; public static final String KEY_DESIGNATION = "CN"; public static final String KEY_DN = "DN"; private static final String TAG = "MyDB"; private static final String DATABASE_NAME = "test.db"; private static final int DATABASE_VERSION = 1; private static final String DATABASE_CREATE_ValidateUser_DriverInfo = "create table tabletest1 (_id integer primary key autoincrement, " + "ID text not null, CS text not null,CN text not null,DN text not null);"; private static final String DATABASE_CREATE_ValidateUser_TripInfo = "create table tabletest2 (_id integer primary key autoincrement, " + "TI text not null, PU text not null,LN text not null,FN text not null,Origin varchar not null,De text not null);"; private Context context; private DatabaseHelper DBHelper; private SQLiteDatabase db; public MyDB(Context ctx) { this.context = ctx; DBHelper = new DatabaseHelper(context); } private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE_ValidateUser_DriverInfo); db.execSQL(DATABASE_CREATE_ValidateUser_TripInfo); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS Employee"); onCreate(db); } } public MyDB open() throws SQLException { db = DBHelper.getWritableDatabase(); return this; } //---closes the database--- public void close() { DBHelper.close(); } public long insertTitle(ContentValues initialValues,String TableName) { return db.insert(TableName, null, initialValues); } } 

使用以下代码插入所需活动的数据。

 MyDB mmdb=new MyDB(getBaseContext()); mmdb.open(); initialValues = new ContentValues(); initialValues.put("ID", ID); initialValues.put("CS", CS); initialValues.put("CN", CN); initialValues.put("DN", DN); mmdb.insertTitle(initialValues,"tabletest1"); mmdb.close();