本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。

原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/


DBAdapter已经创建好了,现在我们可以去使用数据库了。下面的章节,将介绍常规的CRUD(增加,读取,更新,删除)。

往表中添加联系人。

1. 使用之前的项目,在DatabasesActivity.java中添加一些代码。

public class DatabasesActivity 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);        //---add a contact---        db.open();        long id = db.insertContact("Manoel", "manoel@hotmail.com");        id = db.insertContact("Mary", "mary@hotmail.com");        db.close();    }    }

2. 按F11在模拟器上面调试。


首先,创建一个DBAdapter类的实例:

DBAdapter db = new DBAdapter(this);
insertContact()方法返回被插入的行的id。如果这个过程发生错误,返回-1。

使用DDMS查看Android设备或模拟器,在databases文件夹下面将会看见名为MyDB的数据库。


获取所有的联系人。

使用getAllContacts() 方法,可以获取所有的联系人信息。
1. 使用之前的例子,并添加一些代码。

public class DatabasesActivity 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);       /* //---add a contact---        db.open();        long id = db.insertContact("Manoel", "manoel@hotmail.com");        id = db.insertContact("Mary", "Mary@hotmail.com");        db.close();        */        //--get all contacts---        db.open();        Cursor c = db.getAllContacts();        if (c.moveToFirst())        {            do {                DisplayContact(c);            } while (c.moveToNext());        }        db.close();            public void DisplayContact(Cursor c)    {        Toast.makeText(this,                "id: " + c.getString(0) + "\n" +                "Name: " + c.getString(1) + "\n" +                "Email:  " + c.getString(2),                Toast.LENGTH_LONG).show();    }}
2. 按F11在模拟器上面测试。


获取单独一条联系人信息。

        db.open();        Cursor c = db.getContact(2);        if (c.moveToFirst())                    DisplayContact(c);        else            Toast.makeText(this, "No contact found", Toast.LENGTH_LONG).show();        db.close();     

更新联系人信息。

        db.open();        if (db.updateContact(1, "Manoel, "Manoel@gmail.com"))            Toast.makeText(this, "Update successful.", Toast.LENGTH_LONG).show();        else            Toast.makeText(this, "Update failed.", Toast.LENGTH_LONG).show();        db.close();

删除一条联系人信息。

        db.open();        if (db.deleteContact(1))            Toast.makeText(this, "Delete successful.", Toast.LENGTH_LONG).show();        else            Toast.makeText(this, "Delete failed.", Toast.LENGTH_LONG).show();        db.close();
这些操作都十分的类似,我就不一一赘述了。


更新数据库。

有些时候,可能需要往数据库中添加一个新的表,或者是往表里添加一些新的列。在这种情况下,就需要把数据从旧数据库迁移到新数据库。

如果想要更新数据库,那么改变DATADASE_VERSION常量即可。

DATABASE_VERSION之前为1,现改为2。

public class DBAdapter {    static final String KEY_ROWID = "_id";    static final String KEY_NAME = "name";    static final String KEY_EMAIL = "email";    static final String TAG = "DBAdapter";    static final String DATABASE_NAME = "MyDB";    static final String DATABASE_TABLE = "contacts";    static final int DATABASE_VERSION = 2;

重新跑一遍程序,就会看到如下的log信息。


这个例子里面,只是简单地删除数据库,然后重新创建了一个新的空白数据库。在真实的项目中,可能会保存之前的数据,然后把这些数据重新放入新的数据库里面。

更多相关文章

  1. android中模拟器中实现GPS坐标改变
  2. Android(安卓)adb shell
  3. SQLite3命令行使用查询android的telephone数据库
  4. Android开发学习1 - Android架构
  5. 转:android实现发送短信并保存到数据库,同时可以获得发送报告和接
  6. 【Android】Android清除本地数据缓存代码(这些功能很强大不要乱
  7. android EnMicroMsg.db安卓微信数据库获得密码的源码
  8. android 使用 SQLiteOpenHelper 实现对SQLite数据库操作
  9. Android之四大组件、六大布局、五大存储

随机推荐

  1. android 系统开机运行指定程序
  2. Android(安卓)属性"@+id"、"@id"、"@andr
  3. android之theme
  4. Android(安卓)相对布局
  5. Android(安卓)中文API合集(4)(102篇)(chm
  6. Android(安卓)下拉框并添加事件
  7. android定义Color和Drawable
  8. android 开发中遇到的问题汇总
  9. Android(安卓)text文字阴影设置
  10. Android:inputType常用取值