SQLite(慕课网)

两倍速游看,然后查找网页,学习效率比较高 她的英语发音好烂呀,听她读函数难受的一匹
1-1
SQL 简介:
SQL的特点:

  • 轻量级
  • 不需要“安装”
  • 单一文件
  • 跨平台/可移植性
  • 开源

2-1
SQLite是Android内置的一个数据库

SQLiteOpenHelper :帮助类
onCreate() :创建方法
onUpgrade():数据库升级方法
onOpen() :打开数据库方法

onCreate() //创建时回调的函数
onUpgrade()//数据库更新时回调的函数

需要继承SQLiteOpenHelper 一定得重写回调函数onCreate() onUpgrade() ,也可重写onOpen()方法,完成当数据库打开时的操作

为了构建方便,构建函数的参数可以不用那么多,还可以创建一个常数类,方便之后更改的数据,更改这个类里面的属性值就行。

创建数据库的时候可以使用单例模式。

        db = helper.getWritableDatabase(); //
        db = helper.getReadableDatabase(); //
    //默认情况下,两个函数都表示打开或创建 可读可写的数据库对象 

两个方法都是返回读写数据库的对象,但是当磁盘已经满了时,getWritableDatabase会抛异常,而getReadableDatabase不会报错,它此时不会返回读写数据库的对象,而是仅仅返回一个读数据库的对象。

要记得关闭数据库 db.close();

Android Device Monitor 被弃用了

Android Device Monitor is a standalone tool that provides a UI for several Android app debugging and analysis tools.
However, most components of the Android Device Monitor are deprecated in favor of updated tools available in Android Studio 3.0 and higher. The table below helps you decide which developer tools you should use.

数据库的位置在安装程序data文件夹的database的文件夹下

2-2
数据库管理形式: 表 索引 试图
创建表 : /创建表语句 语句对大小写不敏感 create table 表名(字段名 类型,字段名 类型,…)/
String sql =
db.execSQL(sql)
执行SQL语句,SQL语法一致

2-3
插入语句:
String sql = "insert into "+ TABLE_NAME + " values()";
数据库要防止资源的占用 使用完之后记得 db.close();
修改语句:
String sql = "update "+ TABLE_NAME+" set "+NAME + "= '修改后的内容' where ";
删除语句:
String sql = "deleye from "+ TABLE_NAME + " where " + +"";

2-4通过API增删改(上)
插入:
ContentValues 是键为String类型的hashmap集合
db.insert(String table, String nullColumnHack, ContentValues values);
返回值为long类型,表示插入数据的列数 如果返回负一表示插入失败 (可以用此作为判断条件 , 进插入数据是否成功进行判断)
调用API 在底层 还是调用sql语言 只不过 是API帮我们拼接而已

修改:
其中String[] args 表示修改条件的占位符
db.update(String table ,ContentValues values, String whereClause, String[] whereargs );
返回值为Int类型,返回值表示修改的条数

删除:
db.delete(String table, String whereClause. String [] whereArgs)


查询:

方式一:
rawQuery() -> 指向SQL语句
方式二:
Query() -> 根据参数控制

Cursor游标常用方法

方法名 方法功能
getCount() 获得总的数据项数
isFirst() 判断是否第一条记录
isLast() 判断是否最后一条记录
moveToFirst() 移动到第一条记录
moveToLast() 移动到最后一条记录
move(int offset) 移动到指定记录
moveToNext() 移动到下一条记录 其返回值是布尔类型,可作为判断条件
moveToPrevious() 移动到上一条记录
getColumnIndexOrThrow(String columnName) 根据列名称获得列索引
getInt(int columnIndex) 获得指定列索引的int类型值
getString(int columnIndex) 获得指定列缩影的String类型值

public Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit);

下面介绍几个在SQLite中常用到的adb命令:

查看
.database 显示数据库信息;
.tables 显示表名称;
.schema 命令可以查看创建数据表时的SQL命令;
.schema table_name 查看创建表table_name时的SQL的命令;

插入记录
insert into table_name values (field1, field2, field3...);

查询
select * from table_name;查看table_name表中所有记录;
select * from table_name where field1='xxxxx'; 查询符合指定条件的记录;

删除
drop table_name; 删除表;
drop index_name; 删除索引;

SQLite的适配器使用

SimpleCursorAdapter
CursorAdapter
可以直接接受Cursor数据源

SQliteDatabase.openDatabase(String path, CursorFactory factory, int flags);

  • 注意 有一个参数 是int flags ,这个是设置适配器的标记的 比如说设置成观察者模式
    SimpleCursorAdapter adapter = new SimpleCursorAdapter();
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容