- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android中操作SQLite数据库快速⼊门教程
SQLite是Android平台软件开发中会经常⽤到的数据库产品,作为⼀款轻型数据库,SQLite的设计⽬标就是是嵌⼊式的,⽽且⽬
前已经在很多嵌⼊式产品中使⽤了它,它占⽤资源⾮常的低,在嵌⼊式设备中,可能只需要⼏百K的内存就够。下⾯我们⼀起
来看看针对Android 平台的SQlite 3的使⽤。
以下概念都是在Android平台的SQlite限制下的理解:
数据库基础概念
1.SQlite 通过⽂件来保存数据库,⼀个⽂件就是⼀个数据库。
2.数据库⾥⼜包含数个表格;
3.每个表格⾥⾯包含了多个记录;
4.每个记录由多个字段组成;
5.每个字段都有其对应的值;
6.每个值都可以指定类型。
数据库名称即⽂件名;表格有⾃⼰的名称;记录没有名称;每个字段都有名称。在SQlite中,记录没有顺序的概念,不存在第
⼀、第⼆此类的概念;只能通过查询来获取满⾜条件的记录。我们通过执⾏SQL指令来操作数据库。
Android 平台下数据库相关类
1.SQLiteOpenHelper 抽象类:通过从此类继承实现⽤户类,来提供数据库打开、关闭等操作函数。
2.SQLiteDatabase 数据库访问类:执⾏对数据库的插⼊记录、查询记录等操作。
3.SQLiteCursor 查询结构操作类:⽤来访问查询结果中的记录。
创建数据库
假设使⽤⼀个数据库存储⼀个表格,表格中保存了多条记录,每个记录包含3个字段,分别是: ID、name、age。从
SQLiteOpenHelper继承实现⼀个类,所有对数据库的操作都封装在此类中。
构造函数:
复制代码代码如下:
public DbHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
此函数中的参数name就是数据库名称,也就是数据库⽂件名; version则从1开始,当将来数据库的表格以及字段发⽣变化
时,⽤户可以提⾼此version ,从⽽触发onUpgrade()达到旧数据升级的效果。
在onCreate函数中创建表格:
复制代码代码如下:
public void onCreate(SQLiteDatabase db) {
StringBuilder sql = new StringBuilder();
sql.append(CREATE TABLE );
sql.append(TBL_NAME);
sql.append( ();
sql.append(FIELD_ID + TEXT PRIMARY KEY NOT NULL, );
sql.append(FIELD_NAME + TEXT, );
sql.append(FIELD_AGE + INTEGER);
sql.append(););
db.execSQL(sql.toString());
}
onCreate函数只会在数据库第⼀次创建时调⽤,所以此处适合做⼀些数据库初始化操作。
上⾯的函数最终实际上效果是执⾏了SQL语句:
复制代码代码如下:
CREATE TABLE mytable (id TEXT PRIMARY KEY NOT NULL, name TEXT, age INTEGER);
向表格中添加数据
有两种⽅式可以向表格中添加数据,⼀种是通过SQLiteDatabase提供的execSQL函数直接执⾏SQL指令;⼀种是通过
SQLiteDatabase提供的insert函数,此函数把SQL语句进⾏了封装⽅便⽤户使⽤。
1.通过execSQL(“INSERT INTO mytable VALUES(‘idStr, nameStr, 20);”);可以插⼊⼀条记录,当插⼊记录出错时会抛出异常
需要处理。
2.通过insert函数:insert函数需要⼀个ContentValues类型的值,此类型类似于hashmap,⼀个key,⼀个值配成⼀对。key就
是字段名。
复制代码代码如下:
ContentValues v = new ContentValues();
v.put(id, 101);
v.put(name, user 101);
v.put(age, 44);
mDb.insert(mytable, null, v);
如果v 中的key没有完全
文档评论(0)