我尝试过在sqlite数据库中实现基本CRUD的不同教程。但我错过了关于如何在运行应用程序时创建和使用sqlite的基本概念。我只是在不了解基础知识的情况下实现了代码,我想这适用于每个初学者。我在寻找答案时尝试了不同的关键词,但似乎找不到真正的基础知识。你可能认为我没有足够的研究,但大多数讨论涉及sqlite的定义和样本代码。我不介意请分享您对sqlite的理解。
*叹息在这里。感谢。
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_PH_NO + " TEXT" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
// Create tables again
onCreate(db);
}
附加代码:
protected void onPause() {
super.onPause();
if (isFinishing()) {
mCursor.close();
}
}
protected void onDestroy() {
super.onDestroy();
mCursor.close();
}
答案 0 :(得分:0)
每次打开应用程序时,SQLite数据库都不会执行任何操作。只有在您引用它并使用getWritableDatabase或getReadableDatabase时才会发生某种情况。
再一次,这里也没有任何事情发生。应该以打开,查询运行和关闭的方式使用SQLite。这使得数据库不会被线程锁定,而另一个线程尝试使用它。
关闭sqlite连接以释放线程并锁定数据库。如果您尝试同时使用两个单独的sqlite帮助程序,则会出现锁定的数据库错误,因为一次只有一个线程可以访问数据库。你不想保持这种联系开放。
SQLite数据库根本不应该减慢应用程序的速度。您不能将它用作企业级数据库(只是没有功能)。您可以根据需要运行任意数量的查询,因为它只使用1个线程,只要结果不是很大,就不会出现性能问题。