Android創建和使用數據庫詳細指南(3)

檢索單個標題

想要通過ID檢索單個標題,可以使用DBAdapter類的getTitle()方法:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DBAdapter db = new DBAdapter(this);
//---get a title---

db.open();
Cursor c = db.getTitle(2);
if (c.moveToFirst())
DisplayTitle(c);
else
Toast.makeText(this, "No title found",
Toast.LENGTH_LONG).show();
db.close();
}

返回的結果是一個Cursor對象,如果返回一行,可以使用DisplayTitle()方法顯示標題的詳細信息,否則就使用Toast類顯示一個錯誤消息。

  更新一個標題

要更新一個特定的標題,可以調用DBAdapter的updateTitle()方法,傳遞想要更新的標題的ID給它就可以了,如清單6所示。

清單6 調用DBAdapter類的updateTitle()方法更新標題

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DBAdapter db = new DBAdapter(this);
//---更新標題---

db.open();
if (db.updateTitle(1,
"0470285818",
"C# 2008 Programmer's Reference",
"Wrox Press"))
Toast.makeText(this, "Update successful.",
Toast.LENGTH_LONG).show();
else
Toast.makeText(this, "Update failed.",
Toast.LENGTH_LONG).show();
//-------------------
//---檢索相同的標題---
Cursor c = db.getTitle(1);
if (c.moveToFirst())
DisplayTitle(c);
else
Toast.makeText(this, "No title found",
Toast.LENGTH_LONG).show();
//-------------------
db.close();
}

如果更新成功會顯示一條表示成功的消息,同時,你可以檢索剛剛更新的標題看更新結果是否正確。

  刪除一個標題

想要刪除一個標題,可以調用DBAdapter類的deleteTitle()方法,傳遞你想要刪除的標題的ID即可:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DBAdapter db = new DBAdapter(this);
//---delete a title---

db.open();
if (db.deleteTitle(1))
Toast.makeText(this, "Delete successful.",
Toast.LENGTH_LONG).show();
else
Toast.makeText(this, "Delete failed.",
Toast.LENGTH_LONG).show();
db.close();
}

如果刪除成功會顯示一條表示成功的消息。

升級數據庫

要升級數據庫,修改DBAdapter類中DATABASE_VERSION常量的值比之前的值大,如之前的值是1,將其改爲2:

public class DBAdapter
{
public static final String KEY_ROWID = "_id";
public static final String KEY_ISBN = "isbn";
public static final String KEY_TITLE = "title";
public static final String KEY_PUBLISHER = "publisher";
private static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "books";
private static final String DATABASE_TABLE = "titles";
//---change this to a higher value---

private static final int DATABASE_VERSION = 2;
private static final String DATABASE_CREATE =
"create table titles (_id integer primary key autoincrement, "
+ "isbn text not null, title text not null, "
+ "publisher text not null);";

當你再次運行這個應用程序時,你會在Eclipse的LogCat窗口中看到數據庫已經升級的消息,如圖5所示。

圖5 LogCat窗口-消息顯示數據庫升級成功

  簡化數據庫訪問

使用DBAdapter類,可以簡化你的Android應用程序訪問數據庫記錄的操作,一個重要的事情是在Android中創建的SQLite數據庫只有創建它的應用程序可以訪問它。如果你要共享數據,你需要使用一個內容提供器,這個將在以後的文章中再介紹了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章