分享
2023年浅谈SQLite数据库技术在Android平台的应用.docx
下载文档

ID:1892149

大小:21.47KB

页数:6页

格式:DOCX

时间:2023-04-23

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023 浅谈 SQLite 数据库技术 Android 平台 应用
浅谈SQLite数据库技术在Android平台的应用 【】在当今的数字世界中, 的应用范围越来越广。在 这种特殊设备里,经常会存取一些数据,例如:音频文件、视频文件、图片文件和通讯录等数据。Android作为一种 操作系统,提供如下几种存取数据的方式:Preference(配置)、File(文件)、SQLite数据库和网络等。本文将着重阐述SQLite数据库技术在Android平台的应用。 【关键词】SQLite;Sqliteman;ADB Shell;Android;SQLiteDatabase 1.引言 SQLite是轻量级的嵌入式关系型数据库,目前已经在iPhone、Android等 系统中使用。SQLite具有可移植性好,易用,占用存储空间小,高效可靠等特点。SQLite嵌入到使用的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。 2.SQLite原理与运行环境 2.1 SQLite根本原理 在SQLite内部,SQLite由以下几个组件组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎,使调试、修改和扩展SQLite的内核变得更加方便,所有SQL语句被编译成可以在SQLite虚拟机中执行的程序集。 2.2 SQLite运行环境 Android SDK包含了假设干有用的SQLite数据库管理类。它们中的许多都存在于android.database.sqlite包中。其中,可以发现许多功能包类,比方SQLiteDatabase类提供了创立和使用SQLite数据库的API。SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用于管理数据库的创立和版本更新。 3.SQLite创立与管理 3.1 使用Sqliteman创立和管理SQLite数据库 Sqliteman是一款方便易用的图形化sqlite数据库工具。该软件有着全面的Sqlite功能,适用于所有平台,而且完全免费提供给用户使用。下面以txl数据库的创立和管理为例进行说明。 (1)运行sqliteman.exe程序翻开Sqliteman数据库管理系统,点击“File〞菜单下的“Open〞命令,出现如图2-1所示的界面,在文件名中输入数据库的名称txl,并点击“保存〞按钮。 图2-1 输入要创立的数据库文件名称 (2)此时在出现树形结构的菜单中,选择“Tables〞,右击鼠标选择“Create Table〞命令,在出现的窗口中输入表名“tbl_txl〞以及要创立的字段、数据类型和默认值,如图2-2所示,然后点击“Create〞按钮,那么创立了名为“tbl_txl〞的数据表。 (3)退出Sqliteman数据库管理系统,然后重新进入,在出现树形结构的菜单中,可以实现对txl数据的管理。 图2-2 输入字段、数据类型和默认值 3.2 使用ADB Shell管理SQLite数据库 Android Debug Bridge(ADB)是Android的一个通用调试工具。它既可以更新设备或模拟器中代码和管理预定端口,又可以在设备上运行shell命令。Android基于Linux内核,其内部文件结构采用Linux文件组织方式,因此可以使用shell来访问Android应用中的Sqlite数据库文件。 (1)运行cmd,运行adb.exe,加上参数shell,出现#号就代表进入了shell命令模式,注意:ADB要在Android模拟器运行时才能进入shell。 (2)在shell中,有两个根本命令ls和cd,类似Windows命令提示符中的dir和cd,代表列出当前目录下文件列表和进入到指定目录。通过使用ls命令浏览目录结构,然后使用cd命令可进入目录data/data/com.tl.hellworld2/databases。 (3)找到数据库txl后,键入sqlite3 txl就可进入SQLite管理模式,通过命令可对txl数据库进行管理。 4.SQLite实现与应用 4.1 SQLite数据库部署 在Android系统中,数据库的默认目录一般是存放在data/data/应用程序包名/databases下。通常情况下,数据库是存放在 应用程序目录下的res/raw目录下,这样方便发布系统的时候,将数据库一同发布。当 应用程序安装并运行时,数据库会从res/raw目录复制到data/data/应用程序包名/databases下,方便系统对数据库进行访问。以下是SQLite数据库部署的局部程序代码: private void CopyAndLoadDB(){ java.io.File dir = new java.io.File ("data/data/"+getPackageName()+"/databases"); if(!dir.exists() || !dir.isDirectory()){ dir.mkdir();//判断data/data/com.tl.hellworld2/databases目录是否存在,不存在那么创立} java.io.File file = new java.io.File (dir,"txl"); if(!file.exists()){ //判断data/data/com.tl.hellworld2/databases/txl文件是否存在,不存在那么从res/raw目录中创立 FileUtil.loadDbFile(R.raw.txl,file,this.getResources());}} 4.2 SQLite技术的实现 Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)等操作。execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句;rawQuery()方法用于执行select语句。 (1)翻开或创立数据库 public static void openDataBase(Activity act) {mSQLiteDatabase =act.openOrCreateDatabase(DATABASE_NAME,act.MODE_PRIVATE,null);} 在以上代码中,通过openOrCreateData base方法可以创立一个不存在的数据库,或翻开一个已创立的数据库,并返回一个SQLiteData base对象,其中第一个参数为数据库路径,第二个参数为访问权限,第三个参数是指定返回一个Cursor子类的工厂,如果未指定(null)那么使用默认工厂。 (2)插入数据 插入数据有两种方法:一种是调用SQLite Database的insert(String table,String nullColumnHack,CotentValues values)方法,该方法的第一个参数是表名称,第二个参数是空列的默认值,第三个参数是ContentValues类型的一个封装了列名称和列值的Map;另一种方法是编写插入数据的SQL语句,直接调用SQLiteDatabase的exeSQL()方法来执行。第二种方法例如代码如下: public static void addLxr(String str_xm,String str_xb,String str_dh,String str_jtzz) { String strsql="INSERT INTO tbl_txl (xm,xb,dh,jtzz) VALUES(""+ str_xm +"",""+ str_xb +"",""+str_dh+"",""+str_jtzz+"")"; mSQLiteDatabase.execSQL(strsql);} 运行结果如图3-1所示: 图3-1 插入数据运行结果 (3)修改数据 和插入数据类似,修改数据也有两种方式。一是调用SQLiteDatabase的update(String table,ContentValues values,String where Clause,String[] whereArgs)方法。该方法的第一个参数是表名称,第二个参数是更新列ContentValues类型的键值对(Map),第三个参数是更新条件(where子句),第四个参数是更新条件值数组。二是编写更新的SQL语句,调用SQLiteDatabase的execSQL执行更新。第二种方法例如代码如下: public static void gxLxr(String str_xm,String str_xb,String str_dh,String str_jtzz,int _id){ String strsql="UPDATE tbl_txl SET xm="" +str_xm +"",xb=""+str_xb+"",dh=""+str_dh+"",jtzz=""+str_jtzz+"" WHERE _id="+Integer.toString(_id); mSQLiteDatabase.execSQL(strsql);} 运行结果如图3-2所示: 图3-2 修改数据运行结果 (4)删除数据 和插入修改数据类似,删除数据也有两种方法:一种是调用SQLiteDatabase的delete(String table,String whereClause,String[] whereArgs)方法,该方法的第一个参数是表名称,第二个参数是删除条件,第三个参数是删除条件数组;另一种方法是编写删除SQL语句,调用SQLiteDatabase的execSQL()方法来执行删除。第二种方法例如代码如下: public static void scLxr(int _id){ String strsql="DELETE FROM tbl_txl WHERE _id=" + Integer.toString(_id); mSQLiteDatabase.execSQL(strsql);} (5)查询数据 查询数据使用SQLiteDatabase的rawQuery (String sql, String[] selectionArgs) 方法,第一个参数是查询SQL语句,第二个参数是查询参数所对应的数组。此方法执行成功后返回一个游标(Cursor)对象,例如代码如下: public static Cursor findLxr(int int_id){ String strsql=""; strsql="SELECTxFROM tbl_txl WHERE _id=" + Integer.toString(int_id); Cursor cur_lxr = mSQLiteDatabase.rawQuery(strsql, null); return cur_lxr;} 运行结果如图3-3和图3-4所示。 图3-3 未输入查询条件查询结果 图3-4 输入查询条件“唐〞查询结果 5.结束语 综上所述,SQLite数据库在 等嵌入式设备上的使用是嵌入式设备数据存储技术的重大革新。相信随着科技的进一步开展,嵌入式数据库技术所使用频率将会越来越高,将会具有更强大的功能和更高效的性能,会使我们的 应用世界更加丰富多彩。 参考文献 [1](美)达西(Darcey,L.),(美)康德尔(Conder,S.)著.李卉,张魏,祝延彬译.Android移动开发一本就够[M].北京:人民邮电出版社,2022. [2]郭宏志.Android应用开发详解[M].北京:电子工业出版

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开