AndroidSQLite基本用法
SQLite的特点
支持高达2TB大小的数据库
以单个文件的形式存在
以B-Tree的数据结构形式存储在磁盘
轻量级,一个动态库、单文件
独立性:没有依赖,无序安装
隔离性:支持众多操作系统
多语言接口:支持众多编程语言
SQLite所支持的数据类型
NULL、INTEGER、REAL、TEXT、BLOB数据类型**
空值、整型值、浮点值、字符串值、二进制对象
动态数据类型(弱引用)
当某个值插入到数据库时,Sqlite将会检查他们的类型
如果不能转换,则该值将作为本身的类型存储
数据库存放在哪了?
/data/data/<package name>/databases/目录下
SQLiteOpenHelper
SQLiteOpenHelper是一个帮助类,让我们更方便的管理数据库
创建数据库
在Activity中创建一个SQLiteOpenHelper对象,并传入相应的参数。
使用该对象获取SQLiteDatabase对象,共有两种方式:
getWritableDatabase();
getReadableDatabase();
使用这两个方法创建数据库,将会调用SQLiteOpneHelper的onCreate方法
相同点:如果数据库存在,则打开,否则创建一个新的数据库
不同点:当数据库不可写入时(如磁盘空间已满),前者会出现异常,而后者则会以只读的形式打开数据库
最后使用SQLiteDatabse对象的方法对数据库进行增删改查等工作。
MainActivity的onCreate()方法:
这样就建立了一个数据库文件。
升级数据库
增添数据 -- 增
使用
db.insert("Book", null, values);向book表插入一条数据第三个参数为ContentValue,它是对要添加的数据的组装
删除数据 -- 删
三个参数分别为:
要删除的表名
第二三两个参数代表要删除的条件
更新数据 -- 改
四个参数和delete的相似。
查询数据 -- 查
使用SQL操作数据
增
db.execSQL("insert into Book (name,author,pages,price) values(?,?,?,?)", new String[]{"舒克和贝塔","不清楚","256","16.9"});删
db.execSQL("delete from Book where pages > ?", new String[]{"500"});改
db.execSQL("update Book set price = ? where name = ?", new Sting[]{"10.0","舒克和贝塔"});把舒克和贝塔这本书的price改为10.0查
db.rawQuery("select * from Book", null);
使用事务
什么是事务?
事务的特性是为了保证某一系列操作要么全部完成,要么全部不完成
例如银行取钱: 要么将要取的金额全部取出,要么一分也取不出,不会出现取出一部分的情况。
参考:《第一行代码》
最后更新于
这有帮助吗?