Android学习笔记--SQLite数据库存储

Android内置了SQLite,SQLite是一款轻量级的关系型数据库,运算速度快,占用资源少。

1.创建数据库

首先需要用到SQLiteOpenHelper,

SQLiteOpenHelper
 

onCreate(db : SQLiteDatabase) : void

onUpdate(db : SQLiteDatabase, oldVersion : int, newVersion : int) : void

getReadableDatabase() : SQLiteDatabase

getWritableDatabase() : SQLiteDatabase

需自创帮助类继承SQLiteOpenHelper并重写onCreateonUpdate方法才能实现创建、升级数据库的目的。

一般使用带四个参数的构造方法创建帮助类,(Context context, String name(数据库名), CursorFactory factory(一般为null), int version(当前数据库版本号))。

创建实例后,调用两个get方法时onCreate方法也会得到执行,并且只会在数据库第一次创建时执行,可以在create方法里处理建表逻辑。

2.查看数据库

adb是android SDK自带调试工具,它可以直接对连接在电脑上的手机或模拟器进行调试操作。adb在sdk的platform-tools目录下。要想在命令行中使用,先配置环境变量,win10系统下:此电脑-->属性-->高级系统设置-->环境变量,在系统变量里找到Path,将platform-tools的路径添加进去。命令行操作如下:

  • adb shell                                             功能:进入设备的控制台
  • cd /data/data/<项目名>/databases/    功能:进入该项目的数据库目录
  • sqlite3 <数据库名>                              功能:进入该数据库
  • .table                                                   功能:显示该数据库下所有的表
  • .schema                                              功能:查看所有表的建表语句

3.升级数据库

在SQLiteOpenHelper构造方法中传入比之前版本号大的数就能执行onUpdate方法,在方法中编写删除之前存在的表的语句,再调用onCreate方法就能实现升级数据库的功能。

4.数据库增删改查

通过getWritableDatabase方法获得SQLiteDatabase对象。

I.添加数据

使用insert方法添加数据,方法接收三个参数,第一个参数为表名,第二个参数一般默认为null,第三个参数为ContentValues对象,通过该对象一系列重载的put方法将数据填入。

II.更新数据

使用update方法更改数据,方法接收四个参数,第一个参数为表名,第二个参数为ContentValues对象,通过put方法放入要修改的数据,第三、四个参数用于约束更改哪些行的数据,不指定意味着更改所有行。例如,update("Book",values,"name=?",new String[]{"Hello World"}),意思是修改所有name等于第四个参数中字符串数组中任意一个值的行。

III.删除数据

使用delete方法删除数据,方法接收三个参数,第一个参数为表名,第二三个参数同update方法中的第三四个参数作用一样,指定具体操作哪些行,不指定意味着删除所有行。

IV.查询数据

使用query方法查询数据,最少参数的重载方法有7个参数,第一个参数依然为表名,第二个参数指定查询哪几列,不指定就为所有列,第三个四个参数用于约束查询哪些行,不指定就查询所有行,第五个参数指定用于group by的列,不指定表示不进行group by操作,第六个参数表示对group by的数据进一步过滤,不指定表示不过滤,第七个参数指定查询结果的排序方式,不指定表示默认排序方式。详细内容如下表,

query()方法参数对应SQL部分描述
tablefrom table_name指定查询的表名
columnsselect column1,column2指定查询的列名
selectionwhere column=value指定where的约束条件
selectionArgs-为where中的占位符提供具体的值
groupBygroup by column指定需要group by的列
havinghaving column=value对group by后的结果进一步约束
orderByorder by column1,column2指定查询结果的排序方式

使用query方法会返回一个Cursor对象,调用该对象的moveToFirst方法可以移到数据的第一行,有数据会返回true,无则返回false,接着调用getColumnIndex(<列名>)得到某一列在表中的位置索引,再通过getString/getInt/getDouble等方法得到数据,不断地调用moveToNext方法可以遍历所有值。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值