本文实例讲述了Android SQLite数据库操作方法。分享给大家供大家参考,具体如下:
SQLite and Android
SQLite简介
SQLite是一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能。此外,它还是开源的,任何人都可以使用它。
SQLite由以下几个组件组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展SQLite的内核变得更加方便。
SQLite支持的数据类型包括:
TEXT (类似于Java的String)
2. INTEGER (类似于Java的long)
3. REAL (类似于Java的Double)
更多SQLite数据类型知识可以参考前面相关文章入:详解SQLite中的数据类型
SQLite In Android
Android在运行时集成了SQLite,因此在Android中使用SQLite数据库并不需要安装过程和获取数据库使用权限,你只需要定义创建和更新数据库的语句即可,其他的会由Android平台替你搞定。
操作SQLite数据库通常意味着操作文件系统,这种操作还是比较耗时的,因此建议将数据库操作异步执行。
你的应用创建一个SQLite数据库,数据在默认情况下,存储在/DATA/data/APP_NAME/databases/FILENAME。这里DATA是Environment.getDataDirectory()方法返回的值,APP_NAME是你的应用包名
Android开发中使用SQLite数据库
Activity可以使用Content Provider或者 Service访问一个数据库。
创建数据库
Android不自动提供数据库。在Android应用程序中使用SQLite,必须自己创建数据库,然后创建表、索引、填充数据。Android提供了一个SQLiteOpenHelper帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。
SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:
构造函数,调用父类SQLiteOpenHelper的构造函数。这个方法需要四个参数:上下文环境,数据库名字,一个可选的游标工厂(通常是NULL),一个代表你正在使用的数据库模型版本的整数。
onCreate()方法,它需要一个SQLiteDatabase对象作为参数,根据需要对这个对象填充表和初始化数据。
onUpgrade()方法,它需要三个参数,一个SQLiteDatabase对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变为新的模型。
首先,定义需要创建的表结构,使用类来进行抽象,这里示例定义一个新浪微薄的帐号类:
public class AccountTable { public static final String TABLE_NAME = "account_table"; public static final String UID = "uid"; public static final String USERNAME = "username"; public static final String USERNICK = "usernick"; public static final String AVATAR_URL = "avatar_url"; public static final String PORTRAIT = "portrait"; public static final String OAUTH_TOKEN = "oauth_token"; public static final String OAUTH_TOKEN_SECRET = "oauth_token_secret"; public static final String INFOJSON = "json";}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- 如何自定义 Java 泛型通配符?(java泛型通配符怎么自定义)
- Java Spring 注解与 XML 配置的差异究竟有哪些?(java spring注解与XML配置的区别是什么)
- Java 动态线程池对性能究竟有哪些影响呢?(Java动态线程池对性能的影响)
- 在 Java 中,Guava 究竟有哪些作用呢?(java中guava的作用是什么)
- 软考高项证书能个税抵扣吗?软考高项证书个税啥时候填报?
- 在 JavaScript 中,offsetWidth 的作用究竟是什么?(javascript中offsetwidth作用是什么)
- 软考高项证书个税抵扣有用吗?软考高项证书怎么抵扣个税?
- Java 多线程究竟能否实现线程池?(Java多线程能实现线程池吗)
- Java 序列化中 getByte 方法的角色究竟是什么?(getbyte方法在java序列化中的角色)
- 软考高项证书个税怎么填报?软考高项证书个税填报方法