[英]Check if record exist in the database android
我想檢查SQLite數據庫中是否存在記錄,這是我到目前為止所做的。 當我搜索已經存在的記錄時,我從列表中的EditText獲取值。
//code from activity class
public View.OnClickListener searchStation = new View.OnClickListener() {
@Override
public void onClick(View v) {
arrayAdapterList=new ArrayAdapter<String>(SearchAndReview.this,
android.R.layout.simple_list_item_1,
list);
String searchTextFinal=searchText.getText().toString();
dbms.searchStation(searchTextFinal);
Cursor cursor= dbms.searchStation(searchTextFinal);
list.add(searchTextFinal);
arrayAdapterList= new ArrayAdapter<String>(SearchAndReview.this,
android.R.layout.simple_list_item_1, list);
listView.setAdapter(arrayAdapterList);
}
};
//來自databasehelper類的代碼
public Cursor searchStation(String name){
SQLiteDatabase database = this.getWritableDatabase();
String searchStationQuery = "SELECT stationName FROM review WHERE stationId='"+ name+"'";
Cursor c =database.rawQuery(searchStationQuery,null);
if (c != null && c.moveToFirst()) {
}
return c;
}
我在我的應用程序中使用此代碼,它可以實現...
LoginActivity.java
DatabaseHelper dbHelper = new DatabaseHelper(getApplicationContext());
String email_id = email.getText().toString();
boolean dbHelper.isExist(email_id);
// if record is exist then it will return true otherwise this method returns false
使用rawQuery
public boolean isExist(String strEmailAdd) {
db = this.getReadableDatabase();
cur = db.rawQuery("SELECT * FROM " + USER_TABLE + " WHERE email_id = '" + strEmailAdd + "'", null);
boolean exist = (cur.getCount() > 0);
cur.close();
db.close();
return exist;
}
使用db.query
public boolean isExist(String strEmailAdd){
String whereClause = "email_id = ?";
String[] whereArgs = new String[]{strEmailAdd};
db = database.getWritableDatabase();
cur = db.query(USER_TABLE, null, whereClause, whereArgs, null, null, null);
boolean exist = (cur.getCount() > 0);
cur.close();
db.close();
return exist;
}
從表中選擇一行,是否得到結果=它存在,否則不存在。
public boolean doesStationExist(String name){
final String query = "SELECT stationName FROM review WHERE stationId='"+name+"' LIMIT 1";
try (SQLiteDatabase database = getReadableDatabase();
Cursor c = database.rawQuery(query, null)) {
return c.moveToFirst();
}
}
順便說一下,從rawQuery
返回的游標永遠不會為null
。
編輯:
一旦try
塊完成,更新的代碼將關閉數據庫和光標。 這稱為try-with-resources。
DatabaseManager.java
public Cursor checkFavourites()
{
String query="select * from "+DATABASE_TABLE;
Cursor cursor=db.rawQuery(query,null);
return cursor;
}
MainActivity.java
public void favourite_Click(View view){
Cursor cursor=dbManager.checkFavourites();
if (cursor.getCount()>0)
{
Toast.makeText(MainActivity.this, "Favourites", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(MainActivity.this,"Nothing in favourites yet", Toast.LENGTH_SHORT).show();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.