Android创建和使用数据库详细指南Word文件下载.docx

上传人:b****5 文档编号:18364655 上传时间:2022-12-15 格式:DOCX 页数:14 大小:88.06KB
下载 相关 举报
Android创建和使用数据库详细指南Word文件下载.docx_第1页
第1页 / 共14页
Android创建和使用数据库详细指南Word文件下载.docx_第2页
第2页 / 共14页
Android创建和使用数据库详细指南Word文件下载.docx_第3页
第3页 / 共14页
Android创建和使用数据库详细指南Word文件下载.docx_第4页
第4页 / 共14页
Android创建和使用数据库详细指南Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Android创建和使用数据库详细指南Word文件下载.docx

《Android创建和使用数据库详细指南Word文件下载.docx》由会员分享,可在线阅读,更多相关《Android创建和使用数据库详细指南Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

Android创建和使用数据库详细指南Word文件下载.docx

importandroid.content.Context;

importandroid.database.Cursor;

importandroid.database.SQLException;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.database.sqlite.SQLiteOpenHelper;

importandroid.util.Log;

publicclassDBAdapter

{

}

接下来创建一个数据库,取名为bookstitles,字段如图2所示。

图2数据库字段

在DBAdapter.java文件中,定义清单1中的常量。

清单1定义DBAdapter.java文件中的常量

packagenet.learn2develop.Database;

publicstaticfinalStringKEY_ROWID="

_id"

;

publicstaticfinalStringKEY_ISBN="

isbn"

publicstaticfinalStringKEY_TITLE="

title"

publicstaticfinalStringKEY_PUBLISHER="

publisher"

privatestaticfinalStringTAG="

DBAdapter"

privatestaticfinalStringDATABASE_NAME="

books"

privatestaticfinalStringDATABASE_TABLE="

titles"

privatestaticfinalintDATABASE_VERSION=1;

privatestaticfinalStringDATABASE_CREATE=

"

createtabletitles(_idintegerprimarykeyautoincrement,"

+"

isbntextnotnull,titletextnotnull,"

publishertextnotnull);

privatefinalContextcontext;

DATABASE_CREATE常量包括创建titles表的SQL语句。

在DBAdapter类中,你可以扩展SQLiteOpenHelper类,它是一个Android辅助类,主要用于数据库创建和版本管理。

实际上,你可以覆盖onCreate()和onUpgrade()方法,如清单2所示。

清单2在DBAdapter类中,扩展SQLiteOpenHelper类覆盖onCreate()和onUpgrade()方法

 packagenet.learn2develop.Database;

privateDatabaseHelperDBHelper;

privateSQLiteDatabasedb;

publicDBAdapter(Contextctx)

this.context=ctx;

DBHelper=newDatabaseHelper(context);

privatestaticclassDatabaseHelperextendsSQLiteOpenHelper

DatabaseHelper(Contextcontext)

super(context,DATABASE_NAME,null,DATABASE_VERSION);

@Override

publicvoidonCreate(SQLiteDatabasedb)

db.execSQL(DATABASE_CREATE);

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,

intnewVersion)

Log.w(TAG,"

Upgradingdatabasefromversion"

+oldVersion

to"

+newVersion+"

whichwilldestroyallolddata"

);

db.execSQL("

DROPTABLEIFEXISTStitles"

onCreate(db);

onCreate()方法创建一个新的数据库,onUpgrade()方法用于升级数据库,这可以通过检查DATABASE_VERSION常量定义的值来实现,对于onUpgrade()方法而言,只不过是简单地删除表,然后在创建表而已。

现在你可以定义不同的方法来打开和关闭数据库,如清单3中的添加/编辑/删除/行的函数。

清单3定义打开和关闭数据库以及增加/编辑/删除表中行的方法

//...

//---打开数据库---

publicDBAdapteropen()throwsSQLException

db=DBHelper.getWritableDatabase();

returnthis;

//---关闭数据库---

publicvoidclose()

DBHelper.close();

//---向数据库插入一个标题---

publiclonginsertTitle(Stringisbn,Stringtitle,Stringpublisher)

ContentValuesinitialValues=newContentValues();

initialValues.put(KEY_ISBN,isbn);

initialValues.put(KEY_TITLE,title);

initialValues.put(KEY_PUBLISHER,publisher);

returndb.insert(DATABASE_TABLE,null,initialValues);

//---删除一个指定的标题---

publicbooleandeleteTitle(longrowId)

returndb.delete(DATABASE_TABLE,KEY_ROWID+"

="

+rowId,null)>

0;

//---检索所有标题---

publicCursorgetAllTitles()

returndb.query(DATABASE_TABLE,newString[]{

KEY_ROWID,

KEY_ISBN,

KEY_TITLE,

KEY_PUBLISHER},

null,

null);

//---检索一个指定的标题---

publicCursorgetTitle(longrowId)throwsSQLException

CursormCursor=

db.query(true,DATABASE_TABLE,newString[]{

KEY_PUBLISHER

},

KEY_ROWID+"

+rowId,

if(mCursor!

=null){

mCursor.moveToFirst();

returnmCursor;

//---更新一个标题---

publicbooleanupdateTitle(longrowId,Stringisbn,

Stringtitle,Stringpublisher)

ContentValuesargs=newContentValues();

args.put(KEY_ISBN,isbn);

args.put(KEY_TITLE,title);

args.put(KEY_PUBLISHER,publisher);

returndb.update(DATABASE_TABLE,args,

注意Android使用Cursor类返回一个需要的值,Cursor作为一个指针从数据库查询返回结果集,使用Cursor允许Android更有效地管理它们需要的行和列,你使用ContentValues对象存储键/值对,它的put()方法允许你插入不同数据类型的键值。

清单4显示了完整的DBAdapter.java源代码。

清单4DBAdapter.java完整源代码

//---向数据库中插入一个标题---

//---删除一个指定标题---

returndb.delete(DATABASE_TABLE,KEY_ROWID+

//---检索一个指定标题---

3使用数据库

现在你已经可以利用创建的辅助类来使用数据库了,在DatabaseActivity.java文件中,创建一个DBAdapter类的实例:

importandroid.app.Activity;

importandroid.os.Bundle;

publicclassDatabaseActivityextendsActivity{

/**Calledwhentheactivityisfirstcreated.*/

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

DBAdapterdb=newDBAdapter(this);

4增加一个标题

如果想在titles表中增加一个标题,可以使用DBAdapter类的insertTitle()方法:

@Override

//---add2titles---

db.open();

longid;

id=db.insertTitle(

0470285818"

C#2008Programmer'

sReference"

Wrox"

047017661X"

ProfessionalWindowsVistaGadgetsProgramming"

db.cl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1