在手机系统领域中,谷歌的Android操作系统算是一个新起之秀。但是其优秀的性能以及开源性,使其一经推出就伸手广大用户的好评。在这里我们可以从Android数据库的相关操作来体验这一系统给我们带来的好处。#t#

一个好的习惯是创建一个辅助类来简化你的数据库交互。
考虑创建一个数据库适配器,来添加一个与数据库交互的包装层。它应该提供直观的、强类型的方法,如添加、删除和更新项目。数据库适配器还应该处理查询和对创建、打开和关闭数据库的包装。
它还常用静态的Android数据库常量来定义表的名字、列的名字和列的索引。
下面的代码片段显示了一个标准数据库适配器类的框架。它包括一个SQLiteOpenHelper类的扩展类,用于简化打开、创建和更新Android数据库。
- import android.content.Context;
 - import android.database.*;
 - import android.database.sqlite.*;
 - import android.database.sqlite.SQLiteDatabase.CursorFactory;
 - import android.util.Log;
 - public class MyDBAdapter
 - {
 - private static final String DATABASE_NAME = “myDatabase.db”;
 - private static final String DATABASE_TABLE = “mainTable”;
 - private static final int DATABASE_VERSION = 1;
 - // The index (key) column name for use in where clauses.
 - public static final String KEY_ID=”_id”;
 - // The name and column index of each column in your database.
 - public static final String KEY_NAME=”name”;
 - public static final int NAME_COLUMN = 1;
 - // TODO: Create public field for each column in your table.
 - // SQL Statement to create a new database.
 - private static final String DATABASE_CREATE = “create table “ +
 - DATABASE_TABLE + “ (“ + KEY_ID + “ integer primary key autoincrement, “ +
 - KEY_NAME + “ text not null);”;
 - // Variable to hold the database instance
 - private SQLiteDatabase db;
 - // Context of the application using the database.
 - private final Context context;
 - // Database open/upgrade helpe
 - private myDbHelper dbHelper;
 - public MyDBAdapter(Context _context) {
 - context = _context;
 - dbHelper = new myDbHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
 - }
 - public MyDBAdapter open() throws SQLException {
 - db = dbHelper.getWritableDatabase();
 - return this;
 - }
 - public void close() {
 - db.close();
 - }
 - public long insertEntry(MyObject _myObject) {
 - ContentValues contentValues = new ContentValues();
 - // TODO fill in ContentValues to represent the new row
 - return db.insert(DATABASE_TABLE, null, contentValues);
 - }
 - public boolean removeEntry(long _rowIndex) {
 - return db.delete(DATABASE_TABLE, KEY_ID + “=” + _rowIndex, null) > 0;
 - }
 - public Cursor getAllEntries () {
 - return db.query(DATABASE_TABLE, new String[] {KEY_ID, KEY_NAME},
 - null, null, null, null, null);
 - }
 - public MyObject getEntry(long _rowIndex) {
 - MyObject objectInstance = new MyObject();
 - // TODO Return a cursor to a row from the database and
 - // use the values to populate an instance of MyObject
 - return objectInstance;
 - }
 - public int updateEntry(long _rowIndex, MyObject _myObject) {
 - String where = KEY_ID + “=” + _rowIndex;
 - ContentValues contentValues = new ContentValues();
 - // TODO fill in the ContentValue based on the new object
 - return db.update(DATABASE_TABLE, contentValues, where, null);
 - }
 - private static class myDbHelper extends SQLiteOpenHelper
 - {
 - public myDbHelper(Context context, String name, CursorFactory factory,
 
int version) {- super(context, name, factory, version);
 - }
 - // Called when no database exists in
 - // disk and the helper class needs
 - // to create a new one.
 - @Override
 - public void onCreate(SQLiteDatabase _db) {
 - _db.execSQL(DATABASE_CREATE);
 - }
 - // Called when there is a database version mismatch meaning that
 - // the version of the database on disk needs to be upgraded to
 - // the current version.
 - @Override
 - public void onUpgrade(SQLiteDatabase _db, int _oldVersion,
 
int _newVersion) {- // Log the version upgrade.
 - Log.w(“TaskDBAdapter”, “Upgrading from version “ +
 - _oldVersion + “ to “ + _newVersion +
 - “, which will destroy all old data”);
 - // Upgrade the existing database to conform to the new version.
 - // Multiple previous versions can be handled by comparing
 - // _oldVersion and _newVersion values.
 - // The simplest case is to drop the old table and create a
 - // new one.
 - _db.execSQL(“DROP TABLE IF EXISTS “ + DATABASE_TABLE);
 - // Create a new one.
 - onCreate(_db);
 - }
 - }
 - }
 
Android数据库的相关操作就为大家介绍到这里。
                新闻名称:Android数据库工作方式解析
                
                文章转载:http://www.csdahua.cn/qtweb/news30/416480.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网