数据储存方式-SQLite

SQLite 是用C语言编写的开源嵌入式数据库引擎。支持太多数的SQL92biaozhun,并且

可以再所有主要的操作系统上运行。

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

特点:

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

事务处理的安全性问题:

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

SQLite的数据类型:

  • NULL 、INTEGR、REAL、TEXT和BLOB数据类型
  • 空值、整形值、浮点值、字符串值、二进制值

动态数据类型(弱引用)

当某个值插入到数据库,SQLite将会检查它的类型,如果该类型与关联的列不匹配,

SQLite则会尝试将该值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储。

SQLiteDatabase:

提供一些管理SQLite数据库的类

提供创建,删除,执行SQL命令,并执行其他常见的数据库管理任务的方法

每个程序的数据库名字是惟一的

  • execSQL(sql)
  • insert(table,nullColumnHack,values)
  • delete(table,whereClause,whereArgs)
  • update(table,values,whereClause,whereArgs)
  • query(table,columns,selection,selectionArgs,groupBy,having,orderBy)
  • rawQuery(sql,selectionArgs)

example:--------------------------------------------------------------------------------------------

//每个程序都有自己的数据库,一般情况下互不干扰

//创建一个数据库并且打开

SQLiteDatabase db =  openOrCreateDatabase("user.db",MODE_PRIVATE, null);

db.execSQL("create table if not exites usertb(_id integer primary key autoincrement,name text not null,age integer not null,sex text not null)");

db.execSQL("insert into usertb(name,sex,age)values(‘张三‘,‘男‘,‘18‘)");

db.execSQL("insert into usertb(name,sex,age)values(‘李四‘,‘女‘,‘19‘)");

db.execSQL("insert into usertb(name,sex,age)values(‘王五‘,‘男‘,‘20‘)");

Cursor c=db.rawQuery("select * form usertb", null);

if(c!=null)

{

while(c.moveToNext())

{

Log.i("info",""+c.getInt(c.getColumnIndex("_id")));

Log.i("info",""+c.getString(c.getColumnIndex("name")));

Log.i("info",""+c.getInt(c.getColumnIndex("age")));

Log.i("info",""+c.getString(c.getColumnIndex("sex")));

}

c.close();

}

db.close();

---------------------------------------------------------------------------------------------------------------

ContentValues:

  • 用来存储一组可以被ContentResolver处理的值。
  • ContentValues value = newContentValues();
    • //类似 hashMap key value
  • values.put (“key”,“values”);

example:

---------------------------------------------------------------------------------------------------------------

SQLiteDatabase db= openOrCreateDatabase("stu.db", MODE_PRIVATE, null);

db.execSQL("create table if not exists stutb(_id integer primary key autoincrement,name text not null,sex text not null,age integet not null)");

ContentValues values = new ContentValues();

values.put("name", "王尼玛");

values.put("sex", "男");

values.put("age", 20);

db.insert("stutb", null, values);

values.clear();

values.put("name", "李尼玛");

values.put("sex", "男");

values.put("age", 22);

db.insert("stutb", null, values);

values.clear();

values.put("sex", "女");

db.update("stutb", values, "_id>?", new String[]{"0"});

db.delete("stutb", "name like ?", new String[]{"%王%"});

Cursor c =db.query("stutb", null, "_id>?", new String[]{"0"}, null, null, "name");

if(c!=null)

{

String []columns= c.getColumnNames();

while(c.moveToNext())

{

for(String columnName :columns)

{

Log.i("info", c.getString(c.getColumnIndex(columnName)));

}

}

}

}

-------------------------------------------------------------------------------------------------------------------------------------------

SQLiteOpenHelper:

  • SQLiteDatabase的帮助类,用于管理数据库的创建和版本更新
  • 一般用法是建立一个类继承它,并且重写onCreate()和onUpgrade()方法
  • onCreate(SQLiteDatabase db) 创建数据库调用,
  • inUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) 版本更新时调用
  • getReadableDatabase()创建或打开一个只读数据库
  • getWriteDatabase()创建或者打开一个读写数据库
时间: 2024-08-15 06:08:25

数据储存方式-SQLite的相关文章

Android下的数据储存方式(三)

  Android下最好的数据储存方式:关系型数据库sqlite.   数据库的创建:使用SqliteOpenHelper类 结合SqliteOpenHelper类和SQLiteDatabase类的帮助,我们可以方便地对数据库进行CURD操作.   数据库的创建: 我们主要通过在SqliteOpenHelper类的onCreate方法中创建数据库表. 那么,onCreate方法又是在什么时候执行的呢? 我们先写一下代码: package com.whathecode.db; import and

关系型数据库与HBase的数据储存方式区别

如今Bigtable型(列族)数据库应用越来越广,功能也很强大.但是很多人还是把它当做关系型数据库在使用,用原来关系型数据库的思维建表.存储.查询.本文以hbase举例讲述数据模式的变化. 传统关系型数据库(mysql,oracle)数据存储方式主要如下: 图一 上图是个很典型的数据储存方式,我把每条记录分成3部分:主键.记录属性.索引字段.我们会对索引字段建立索引,达到二级索引的效果. 但是随着业务的发展,查询条件越来越复杂,需要更多的索引字段,且很多值都不存在,如下图: 图二 上图是6个索

Android下的数据储存方式

  安卓系统默认提供了一下几种数据储存的方式: Shared Preferences 内部储存 外部储存 SQLite数据库 保存到网络服务器   使用Shared Preferences       Shared Preferences类主要用于保存键值对的数据类型.我们可以使用它保存一些简单的数据类型.        获得SharedPreferences对象有两种方法: 通过getSharedPreferences()方法 通过getPreferences()方法   上面两种方法的分别主

Android下的数据储存方式( 二)

  在上一篇文章中我们介绍了SharedPreferences的使用方法. 今天我们继续介绍另一种储存数据的方式:使用内部储存和外部储存   每一个Android设备都拥有两个数据储存区域:外部储存和外部储存 那么我们应该采用哪种储存方式呢? 我们先对比一下这两种储存方式的不同: 内部储存: 总是可用的 保存在这里的文件只能被你的app访问 当程序被卸载的时候,系统会删除所有属于该应用的文件 当你不希望你的文件被其他人或应用访问到的时候,内部储存是最好的选择 外部储存: 当sd卡被用户卸载的时候

ios应用数据存储方式(Sqlite)

一. 简介 Sqlite:主要用于大数据的存储 Sqlite的使用步骤: 1.导入头文件 2.一般把数据库文件放入沙盒,所以需要先设定存放路径 3.打开数据库--用sqlite3_open方法 4.创建数据列表 5.然后就可以对Sqlite 数据库进行  增-删-改-查.不能忘记对执行数据库语句 二.简单介绍常用方法 sqlite3          *db, 数据库句柄,跟文件句柄FILE很类似sqlite3_stmt      *stmt, 这个相当于ODBC的Command对象,用于保存编

Android SQLite数据储存方式

SQLiteOpenHelper 类 用SQLiteOpenHelper 类中的 getWritableDatabase()和getReadableDatabase()方法可以获得数据库的引用. 为了实现对数据库版本进行管理,SQLiteOpenHelper 类提供了两个重要的方法,分别是 onCreate()和 onUpgrade(),前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结构. 当调用SQLiteOpenHelper的getWritableDatabase()或者

wemall app商城源码Android数据的SharedPreferences储存方式

wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据的SharedPreferences储存方式,供技术员参考学习.        SharedPreferences:除了SQLite数据库外,SharedPreferences也是一种轻型的数据储存方式,它的本质是基于XML文件存储key-value键值对数据,通常用来储存一些简单的配置信息.Sha

Android数据储存

Android提供了三种数据储存的方式,分别为: 1.文件储存--文件存储数据使用了Java中的IO操作来进行文件的保存和读取 2.SharedPreferences储存--SharedPreferences可以存取简单的数据 3.Sqlite储存--Sqlite是一个Android内建的轻量级数据库 下面会用三个章节分别介绍这三种储存方式 Android数据储存--文件储存 Android数据储存--SharedPreferences储存 Tips:很多文章认为Android的数据储存有5种,

Android数据储存——Sqlite

1.什么是Sqlite? SQLite是轻量级的.嵌入式的.关系型数据库. 2.Sqlite储存在Android系统的哪? 数据库存储的位置在data/data/<packagename>/databases/ 3.使用Sqlite基本流程 [1]创建一个类继承SQLiteOpenHelper并复写其中方法 [2]通过SQLiteOpenHelper的方法获取SQLiteDatabase对象 调用SQLiteOpenHelper的getWritableDatabase()获取一个能读能写的SQ