我想在SQLite数据库中使用线程存储数据。每个线程都有自己的数据库来存储数据。 我正在使用线程来提高性能并缩短处理时间。如你所知,SQLite不允许多线程数据写入。所以我计划为每个线程创建一个数据库,以节省时间并提高性能。
Thread1将在数据库[0]中插入数据 Thread2将在数据库[1]中插入数据 。 。 。 等等。
如何使用SQLite Helper实现这一目标?
我正在使用此代码
public class DBHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "MyDBName.db";
public DBHelper(Context context) {
super(context, DATABASE_NAME , null, 3);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void insertdata(int Dbnumber)
{
Database[dbnumber].excquery("Insert into ....");
}
答案 0 :(得分:1)
如果将常量更改为常规类成员,请执行以下操作:
public class DBHelper extends SQLiteOpenHelper {
public String databaseName;
public DBHelper(Context context, String databaseName) {
super(context, databaseName, null, 3);
this.databaseName = databaseName;
}
// ...
}
然后您可以根据需要实例化这些内容:
DBHelper db1 = new DBHelper(context, "db1.db");
DBHelper db2 = new DBHelper(context, "db2.db");
您可能需要在代码中的其他位置将DATABASE_NAME更改为databaseName,但您明白了。
答案 1 :(得分:0)
创建另一个扩展到SQLiteOpenHelper的类。就如此容易。
为什么你需要不同的线程。当您创建该类的对象时,它将为您创建所有表。
如果要为每个数据库创建单独的线程,请使用Thread。 @Wizad建议在DB中存储多个表时需要另一个DB。 顺便说一句,这是你的选择。