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

使用數據庫

現在你已經可以利用創建的輔助類來使用數據庫了,在DatabaseActivity.java文件中,創建一個DBAdapter類的實例:

package net.learn2develop.Database;
import android.app.Activity;
import android.os.Bundle;
public class DatabaseActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DBAdapter db = new DBAdapter(this);
}
}

增加一個標題

如果想在titles表中增加一個標題,可以使用DBAdapter類的insertTitle()方法:

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

db.open();
long id;
id = db.insertTitle(
"0470285818",
"C# 2008 Programmer's Reference",
"Wrox");
id = db.insertTitle(
"047017661X",
"Professional Windows Vista Gadgets Programming",
"Wrox");
db.close();
}

insertTitle()方法返回插入行的ID,如果在添加過程中遇到錯誤,它就返回-1。

如果你分析Android設備/模擬器的文件系統,你可以看到book數據庫創建在database文件夾下,如圖3所示。

圖3 database文件夾

  檢索所有標題

想要檢索titles表中的所有標題,可以使用DBAdapter類的getAllTitles()方法,如清單5所示。

清單5 使用DBAdapter類的getAllTitles()方法檢索titles表中的所有標題

 package net.learn2develop.Database;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.Toast;
public class DatabaseActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DBAdapter db = new DBAdapter(this);
//---獲取所有標題---

db.open();
Cursor c = db.getAllTitles();
if (c.moveToFirst())
{
do {
DisplayTitle(c);
} while (c.moveToNext());
}
db.close();
}
}

返回的結果是一個Cursor對象,如果要顯示所有標題,你首先應該調用Cursor對象的moveToFirst()方法,如果它成功(意味着至少有一行有效),使用DisplayTitle()方法顯示詳細的標題,要移動到下一個標題,可以調用Cursor對象的moveToNext()方法,下面是DisplayTitle()方法的定義:

public void DisplayTitle(Cursor c)
{
Toast.makeText(this,
"id: " + c.getString(0) + "\n" +
"ISBN: " + c.getString(1) + "\n" +
"TITLE: " + c.getString(2) + "\n" +
"PUBLISHER: " + c.getString(3),
Toast.LENGTH_LONG).show();
}

 圖4顯示Toast類,它從數據庫中檢索並顯示一個標題。


圖4 Toast類

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