SQLite数据库的使用总结

SQLite是Android内置的轻量关系型数据库
关于SQLiteOpenHelper
Create a helper object to create, open, and/or manage a database
1帮助类,借助这个类就可以非常简单地对数据库进行创建和升级
2抽象类,必须创建一个自己的继承他的类
必须重写两个抽象方法onCreate(),onUpgrade(),来完成承诺的创建升级
3两个重要的实例方法。getReadableDatabase()getWritableDatabase()
获取SQLiteOpenHelper的实例之后, 再调用它的 getReadableDatabase()或 getWritableDatabase()方法就能够创建或打开数据库了
数据库文件会存放在/data/data//databases/目录下。
若要创建,重写的onCreate()方法也会得到执行,所以通常会在这里去处理一些创建表的逻辑。

现实中操作的具体步骤:
创建一个上一步自己定义的帮助类的实例,然后调用两个重要的实例方法
,若已经存在该数据库则直接打开(这两个实例方法会返回一个数据库实例SQLiteDatabases),当然也不会再调用onCreate()方法。

对数据库和表创建情况的检查工具:
注意文件都在 data/data/你定义的工程文件名/databases/目录下
A:ddms->file explorer 可以看到数据库文件 但数据库里面的看不到
B:adb,sdk和Genymotion都提供了,可以直接对连接在电脑上的
手机或模拟器进行调试操作。

要会基本的SQL语句:
包括在命令行中使用adb
以及建表等
以及直接使用exec(SQL)完成所有操作

1怎么创建数据库?
public SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
在SQLiteOpenHelper构造函数中就已经预定义好了要创建的数据库
但是
The database is not actually created or opened until one of getWritableDatabase() or getReadableDatabase() is called.
2怎么升级数据库?

数据库创建之后就不能修改onCreate()方法里的内容?NO
Called when the database is created for the first time.
都说的很清楚了onCreate()只在该数据库第一次创建时才会调用
所以要在onUpgrade()方法里用switch语句来判断当前版本号(oldVersion)来完成新版本的升级覆盖操作,(而且不使用defaul使你你升级只能一次性升级到最新版)与此同时。还要将最新版本的所有更新操作在onCreate()中实现来完成用户第一次安装就安装的最新版。

对于CRUD操作
终究用的还是SQLiteDatabas对象的方法,
那这个对象哪来呢?helper的那俩个实例方法返回了一个数据库实例
你可以使用这个实例对数据库进行CRUD操作whenever,wherever;
3怎么添加数据?
public long insert (String table, String nullColumnHack, ContentValues values)
1是插入行
2一次插入一行,插入多行就要使用多次
3返回新创建行的id 出错返回-1;

4怎么更新数据
比如:降价
public int update (String table, ContentValues values, String whereClause, String[] whereArgs)
这只是更新row

开启事务Transaction
严格遵照try catch代码块
且set…successful()一定要放在try块的最后面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值