微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLite数据存储

sqlite简介

sqlite是可用c语言编写的开源嵌入式数据库引擎。它支持大多数的sql92标准,并且可以在所有主要的操作系统上运行。

  • 支持高大2TB大小的数据库
  • 以单个文件的形式存在
  • 以B-Tree的数据结构形式存储在磁盘

特性主要包括

  1. 轻量级 一个动态库、单文件
  2. 独立性 没有依赖、无序安装
  3. 隔离性 全部在一个文件夹中
  4. 跨平台 支持众多操作系统
  5. 多语言接口 支持众多编程语言
  6. 安全性 事务

关于事务处理的安全性问题

  • 通过数据库上的独立性和共享锁来实现独立事务处理。
  • 多个进程可以在同一时间从同一数据库读取数据,但只要一个进程可以写入数据。

关于sqlite的数据类型:

  • sqlite支持NULL、INTEGER、REAL、TEXT、BLOB数据类型
  • 一次代表:空值、整型值、浮点值、字符串值、二进制对象

动态数据类型(弱类型):
-当某个值插入到数据库时,sqlite将会检查它的类型,如果该类型与关联的列不匹配,sqlite则将会尝试将该值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储。

安全性:通过单一的独占和共享锁,进程要读写sqlite数据库内的数据时,要获得这个锁,这样就避免了其他进程乱用,提高了安全性。

在Android中如何使用sqlite:
- sqliteDatabase
- sqliteOpenHelper

使用内置函数操作数据库
1. ContentValues类
存储一组可以被ContentResolver处理的值,可以理解为它的对象存储了多个键值对
2. 使用ContentValues和内置函数插入数据库

ContentValues values = new ContentValues();
values.put("name","xzhang76");
values.put("sex","man");
values.put("age",26);
sqliteDatabase.insert("studentdb",null,values);

可以将values清空,并重新存值。

values.clear();
values.put("name","xzhang65");
values.put("sex",27);
sqliteDatabase.insert("studentdb",values);
  1. 更新和删除
sqliteDatabase.update("studentdb",values,"_id>?",new String[]{"4"});
sqliteDatabase.delete("studentdb","name like ?",new String[]{"%8%"});
  1. 通过Cursor类的getColumnNames()可以得到所有的列名
String[] columnNames = cursor.getColumnNames();
while (cursor.movetoNext()) { //movetoNext()可以移动到下一行
for(String columnName:columnNames) {
Log.i(TAG,cursor.getString(cursor.getColumnIndex(columnName)));
}
}

原文地址:https://www.jb51.cc/sqlite/199437.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐