SQLite(慕课网)

  • Android基础-初识SQLite:https://www.imooc.com/learn/748
  • Android基础教程-SQLite高级操作:https://www.imooc.com/learn/749

两倍速游看,然后查找网页,学习效率比较高 她的英语发音好烂呀,听她读函数难受的一匹
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();

你可能感兴趣的:(SQLite(慕课网))