【发布时间】:2016-01-07 01:01:19
【问题描述】:
我正在学习 sqllite for android,但我无法理解。 我这样创建数据库处理程序:
public class DatabaseHandler extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "BookMyFitManager";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_LANGUAGE = "language";
// Contacts Table Columns names
private static final String LANGUAGE_ID = "languageid";
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_LANGUAGE + "("
+ LANGUAGE_ID + " INTEGER PRIMARY KEY"+ ")";
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_LANGUAGE);
// Create tables again
onCreate(db);
}
void addLanguage(String language) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(LANGUAGE_ID, language);
// Inserting Row
db.insert(TABLE_LANGUAGE, null, values);
db.close();
}
public int updateLanguage(String language) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(LANGUAGE_ID, language);
// updating row
return db.update(TABLE_LANGUAGE, values, LANGUAGE_ID + " = ?",
new String[] { String.valueOf(language) });
}
public boolean checkForTables(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT COUNT(*) FROM " +TABLE_LANGUAGE, null);
if(cursor != null){
cursor.moveToFirst();
int count = cursor.getInt(0);
if(count > 0){
return true;
}
cursor.close();
}
return false;
}
}
我把这个放在活动中:
DatabaseHandler db = new DatabaseHandler(this);
db.checkForTables();
但是没有用。 基本是我创建了一个切换按钮,当它打开时它发送 1 作为参数,当它关闭时它发送 2 作为参数。之后,我想将参数作为 language_id(上面代码 addlanguage 或 updatelanguage 上的字符串语言)发送到数据库。
如何检查表是否为空?如果表不为空,如何更新? (来自活动)。
如何在另一个活动中调用 LANGUAGE_ID?使用下面的代码?
db.openDataBase();
final String lang_id = db.getLanguageid();
db.close();
【问题讨论】: