Android SQLit数据库学习

Android中SqLite的使用详情

今天我就和大家分享一下在Android中如何使用SQLite。

首先,我们来了解一下SQLite,SQLite是一款轻型的嵌入式数据库,是遵守ACID(原子性、一致性、隔离性、持久性)的关联式数据库管理系统。

SQLite的特点:

    1.轻量级
        使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸比较小。
    2.独立性(不需要安装)
        SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。
    3.隔离性
        SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。
    4.跨平台
        SQLite 目前支持大部分操作系统(windows,linux,Android,ios),不至电脑操作系统更在众多的手机系统也是能够运行
    5.多语言接口
        SQLite 数据库支持多语言编程接口。
    6.安全性
        SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。
        
SQLite数据类型:

一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。
    
        SQLite具有以下五种常用的数据类型:
        ?
            NULL: 表示一个NULL值
            INTEGER: 用来存储一个整数,根据大小可以使用1,2,3,4,6,8位来存储.
            REAL: IEEE 浮点数
            TEXT: 按照字符串来存储
            BLOB: 按照二进制值存储,不做任何改变.
        
        要注意,这些类型是值本身的属性,而不是列的属性.但是为了和其他DBMS(以及SQL标准)兼容,在其create table语句中可以指定列的类型,为此,SQLite有个列相似性的概念(Column Affinity). 列相似性是列的属性,SQLite有以下几种列相似性:
        
            TEXT: TEXT列使用NULL,TEXT或者BLOB存储任何插入到此列的数据,如果数据是数字,则转换为TEXT.
            NUMERIC: NUMERIC列可以使用任何存储类型,它首先试图将插入的数据转换为REAL或INTEGER型的,如果成功则存储为REAL和INTEGER型,否则不加改变的存入.
            INTEGER:和NUMERIC类似,只是它将可以转换为INTEGER值都转换为INTEGER,如果是REAL型,且没有小数部分,也转为INTEGER
            REAL: 和NUMERIC类型 只是它将可以转换为REAL和INTEGER值都转换为REAL.
            NONE:不做任何改变的尝试.
        
        SQLite根据create table语句来决定每个列的列相似性.规则如下(大小写均忽略):
            1. 如果数据类型中包括INT,则是INTEGER
            2. 如果数据类型中包括CHAR,CLOB,TEXT则是TEXT
            3. 如果数据类型中包括BLOB,或者没有指定数据类型,则是NONE
            4. 如果数据类型中包括REAL,FLOA或者DOUB,则是REAL
            5. 其余的情况都是NUMERIC
            
SQLiteDatabase的常用方法,方法名称及方法表示含义:

打开或创建数据库
        openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory  factory)、

插入一条记录
        insert(String table,String nullColumnHack,ContentValues  values)
        

删除一条记录
        delete(String table,String whereClause,String[]  whereArgs)
        

查询一条记录
        query(String table,String[] columns,String selection,String[]  selectionArgs,String groupBy,String having,String  orderBy)
        

修改记录
        update(String table,ContentValues values,String whereClause,String[]  whereArgs)
        

执行一条SQL语句
        execSQL(String sql)
        

关闭数据库
        close()

    

在使用Sqlite的过程中,我们必须使用到一个辅助类————SQLiteOpenHelper

SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法.
    
    SQLiteOpenHelper提供的常用方法,方法名称及方法表示含义:
    
        构造方法,一般是传递一个要创建的数据库名称,版本等参数
        SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version)
        

创建数据库时调用
        onCreate(SQLiteDatabase db)
        

版本更新时调用
        onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)
        

创建或打开一个只读数据库
        getReadableDatabase()

创建或打开一个读写数据库
        getWritableDatabase()

    

   源码下载地址:http://download.csdn.net/detail/littyzhon/9839805

时间: 2024-10-13 05:00:47

Android SQLit数据库学习的相关文章

android sqlit数据库升级,添加字段

看了网上的许多关于数据库升级,字段属性的增加方面的资料,了解到: 其实数据库升级有俩个靠谱的方法,(1) db.execSQL("ALTER TABLE test ADD COLUMN age"); (2)  db.beginTransaction();            db.execSQL("ALTER TABLE test RENAME TO _Test");            db.execSQL("CREATE TABLE test(id

Android Afinal框架学习(一) FinalDb 数据库操作

框架地址:https://github.com/yangfuhai/afinal 对应源码: net.tsz.afinal.annotation.sqlite.* net.tsz.afinal.db.sqlite.* net.tsz.afinal.db.table.* net.tsz.afinal.utils.ClassUtils.net.tsz.afinal.utils.FieldUtils FinalDb 建库 FinalDb db = FinalDb.create(context, "my

android开发的学习路线

android开发的学习路线 第一阶段:Java面向对象编程1.Java基本数据类型与表达 式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回 收:构造函数.this关键字.方法和方法的参数传递过程.static关键字.内部类,Java的垃极回收机制,Javadoc介绍. 4.对象实例化 过程.方法的覆盖.final关键字.抽象类.接口.继承的优点和缺点剖析:对象的多态性:子类和父类之间的转换.抽象类和接

Android 零基础学习之路

第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收:构造函数.this关键字.方法和方法的参数传递过程.static关键字.内部类,Java的垃极回收机制,Javadoc介绍. 4.对象实例化过程.方法的覆盖.final关键字.抽象类.接口.继承的优点和缺点剖析:对象的多态性:子类和父类之间的转换.抽象类和接口在多态中的应用.多态带来的好处.

android 联系人数据库

联系人数据库学习 2011-10-31(这是android2.3上联系人的db) 简介 Android中联系人的信息都是存储在一个叫contacts2.db的数据库中.该数据库的路径是:/data/data/com.android.provider.contacts/databases/contacts2.db.如图1: 我们可以在cmd中通过adb命令把该文件拉出来(具体口令为:adb  pull/data/data/com.android.provider.contacts/database

Android程序员学习之路

和一些刚工作以及未毕业的同学沟通,很多同学对在没有工作机会或熟练Android人员指导的情况下,如何学习Android并提高Android水平比较关心.下面我从几个方面介绍一些方法和方式来和大家分享: 1.Android知识 1.1.网站资源 1.1.1.Android官网 这个是最权威最官方的.主要看设计篇 和开发篇 .API相关接口用到哪一个接口再去看.不用挨个看.当然现在可能会被墙,大家也可以看本地SDK目录下的docs中的index.html打开后的文档. 1.1.2.stackover

Android开发最佳学习路线图(转)

Android开发总体路线图: 基础学习——JavaSE:        很多朋友一上手就开始学习Android,似乎太着急了一些. Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的.那么Java学到 什么程度才算是过关呢?以下的JAVA的基础(JavaSE)语法知识必须全面掌握. 经典学习视频教程 Java 概述 标示符.关键字1 标示符.关键字2 运算符 流程控制1 流程控制2 字符串数组 面向对象编程特征1 面向

Android菜鸟如何学习Android系统开发?

如何做好Android学习前的准备? 如果你已经确定了学习Android的目标,那么,应该提前做好哪些工作.先打下哪些基础呢? 首先,你最好先熟悉一门编程语言,现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习,如果对它掌握的不太好或者很久没用了,建议先从将其好好复习一下,将其基本的语法再好好回顾一下,最好能搭建一个环境来运行.调试它.如果没有学过,不妨也提前学习一下,可以参考清华大学出版社出版的谭浩强老师的<C语言程序设计>,推荐这本书的

android 联系数据库

联系人数据库学习 2011-10-31(这是android2.3在接触db) 简单介绍 Android中联系人的信息都是存储在一个叫contacts2.db的数据库中.该数据库的路径是:/data/data/com.android.provider.contacts/databases/contacts2.db.如图1: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhbzcxMzQ=/font/5a6L5L2T/fontsize/400/fil