【Android(安卓)开发教程】使用数据库
16lz
2021-01-25
本章节翻译自《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信息。
这个例子里面,只是简单地删除数据库,然后重新创建了一个新的空白数据库。在真实的项目中,可能会保存之前的数据,然后把这些数据重新放入新的数据库里面。
更多相关文章
- android中模拟器中实现GPS坐标改变
- Android(安卓)adb shell
- SQLite3命令行使用查询android的telephone数据库
- Android开发学习1 - Android架构
- 转:android实现发送短信并保存到数据库,同时可以获得发送报告和接
- 【Android】Android清除本地数据缓存代码(这些功能很强大不要乱
- android EnMicroMsg.db安卓微信数据库获得密码的源码
- android 使用 SQLiteOpenHelper 实现对SQLite数据库操作
- Android之四大组件、六大布局、五大存储