Android23之轻量级数据库存储(Sqlite)

来源:互联网 发布:淘宝网卧室梳妆台 编辑:程序博客网 时间:2024/04/29 00:07
Sqlite数据库:关系型数据库
    一、特点与描述:
                1、Sqlite数据库,是一个非常轻量的关系型数据库(意思就是非常小,只占用内存的200多K),Android框架已经嵌入了sqlite原生库,
               2、 sqlite3支持的数据类型:null、integer、text、real(实数)、blob(二进制大数据)  也支持其他的类型:varchar、nVarchar、decimal等,使用其他的类型会转化相对应的类型.
               
                3、支持的操作:支持标准sql语句、表、视图、触发器、事务等
               
                4、以文件的形式存放数据库文件,存放的是用户的私有数据,位置:/data/data/<packagename>/databases
                
               5、 两个重要的API:SqliteOpenHelper、 SQLiteDatabase

    二、访问数据库的流程
                1、通过SqliteOpenHelper来创建或打开数据库, 编写类,继承SqliteOpenHelper
                                构造方法:作用是创建和打开数据库
                                onCreate():当数据库第一次创建的时候,回调此方法,初始化数据库,例如:创建表
                                onUpgrade:数据库版本的更新方法    
图片
                2、通过SQLiteDatabase对象来操纵数据库
                            -增删改查操作,都必须借助SQLiteDatabase对象
                            -获取SQLiteDatabase:SqliteOpenHelper.getReadableDatabase() 或者SqliteOpenHelper.getWriteableDatabase()
                                        两种方式的区别:Read..这种:只读取数据库中的数据,则使用它更好,例如查询   Write...:需要操作数据库中的数据,例如:增删改
                            -事务:不可分割,原子性   ,共进退  : 取钱 : 在账号扣钱   atm 拿到钱   其中任何一步出现异常,都会进行回滚操作,也就是恢复到原来的样子,  例子:模拟银行转账

                为了更好的说明步骤2,请下如下图
                            写一个工具类DBUtils:进行数据库的操作,增删改查,事务等
//其中构造方法就将new DBHelper(继承自SqliteOpenHelper),拿到DBHelper的对象helper,因为每个方法中都需要使用该对象从而得到SQLiteDatabase对象来操作数据库

图片


增加数据操作
图片

修改数据操作
图片

删除数据操作
图片


//查询数据操作,
图片

//查询操作,对游标的使用,
图片

//事务的使用
图片

接下来使用测试类来测试这些方法是否有用,测试类请看前面的文章,
        
//插入操作测试
图片

//删除操作测试
图片
//查询方法测试

图片
//更新数据方法测试

图片

//事务测试
图片



如何得知操作是否正确进行了呢? 两种方法
                第一种方法:/data/data/<包名>/databases/   在此目录下有创建好的数据库,将其导出来,利用别的软件将其打开,
图片


                第二种方法:通过 sqlite3命令来查看数据库中的数据
                                 - 进入linux环境  adb shell
                                  - 进入到当前包的/databases/目录
                                                    cd /data/data/com.wuhao. sqlitetest/
                                  - sqlite3 itcast.db
                                  - 写sql语句

            在进入linux环境 adb shell 时有些人会遇到这个问题, 出现此问题原因有二,一是你可能没打开android虚拟设备,二连接中断了, 解决方法,打开android虚拟设备, 重新连接Reset adb
图片

正确进入linux环境下,如图所示:
图片

使用cd 进入到/data/data/目录下, 可以利用ls查看到当前目录下所有的文件
使用了 这两步命令: ①cd /data/data/     ② ls
图片

在进入到目标包名下的databases,在利用ls查看目录底下有什么东西,我的包名是com.wuhao.sqlitetest ,你们的不一样,
命令:①cd com.wuhao.sqlitetest/databases    ②ls
图片

能看到我们所创建的数据库名了,使用命令:sqlite3 book_db;  进入该数据库中
图片
           
这样就成功进入到数据库中了,接下来就编写数据库语句就可以了,例如,查询所有数据,(前提是该数据库中有数据,不然查不到)
图片

这样就可以检验我们编写的那些操作是否正确执行了,
0 0
原创粉丝点击