Andoid数据存储之SQLite数据库
2024-10-19 06:18:47
SQLite是一个嵌入式的并且是一个轻量级的数据库;
SQLite数据库支持大部分SQL语法, 允许使用SQL语句操作数据库, 其本质是一个文件, 不需要安装启动;
SQLite数据库打开只是打开了一个文件的读写流, 如果有大数据量读写, 需要高并发存储, 那么就不应该使用SQLite;
Android系统提供了SQLiteDatabase代表一个数据库,一旦应用程序获得了代表指定数据库的SQLiteDatabase对象,接下来就可以通过SQLiteDatabase对象来管理. 操作数据库了。SQLiteDatabase对象也为我们提供了一些方法来操作数据库:
execSQL(String sql) 执行一条SQL语句,没有返回值
execSQL(String sql,Object[] bindArgs) 执行带占位符的SQL语句,没有返回值
insert(String table,String nullColumnHack,ContentValues values) 插入一条记录
update(String table,ContentValues values,String whereClause,String[] whereArgs) 修改记录
delete(String table,String whereClause,String[] whereArgs) 删除一条记录
query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy) 查询一条记录
query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit)
执行查询,limit用于控制最多查询几条记录
query(boolean distinct,String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit)
执行查询,distinct是控制是否去除重复值
rawQuery(String sql,String[] selectionArgs) 执行带占位符的sql查询,带返回值
beginTransaction(); 开始事务
endTransaction(); 结束事务
close() 关闭数据库
上面的查询方法都返回一个Cursor对象,Android中的Cursor类似于JDBC的ResultSet,Cursor同样提供了如下方法来移动查询结果的记录指针.Cursor游标常用方法:
getCount() 获得总的数据项数
isFirst() 判断是否第一条记录
isLast() 判断是否最后一条记录
moveToFirst() 移动到第一条记录
moveToLast() 移动到最后一条记录
move(int offset) 移动到指定记录
moveToNext() 移动到下一条记录
moveToPrevious() 移动到上一条记录
getColumnIndexOrThrow(String columnName) 根据列名称获得列索引
getInt(int columnIndex) 获得指定列索引的int类型值
getString(int columnIndex) 获得指定列缩影的String类型值
在实际开发中采用SQLiteDatabase的方法打开数据库十分烦琐,所以android为我们提供了SQLiteOpenHelper帮助类。通常都会继承SQLiteOpenHelper开发子类,并通过该子类的getReadableDatabase() getWritableDatabase()方法打开数据库。
下面通过一个实例来说明SQLiteOpenHelper帮助类的具体操作:
最新文章
- UI: 标题栏
- HTTP协议及其请求头分析
- 20145317彭垚 《Java程序设计》第五次实验报告
- PHP使用Mysql事务
- C++中数组求偏移量计算公式
- spring各个包之间的依赖关系
- C#“同步调用”、“异步调用”、“异步回调”
- python三元运算符
- maven项目,去除jar包中的不想要的依赖关系(Document root element ";beans";, must match DOCTYPE root ";null";. )
- mysql字符串操作相关函数用法总结
- [LeetCode] Cherry Pickup 捡樱桃
- QTL定位相关
- Numpy 笔记: 多维数组的切片(slicing)和索引(indexing)【转】
- Windows10开发手记-Windows App Certification Kit使用教程
- ActiveMQ broker 非持久化queue消息的入队、出队和应答
- 《LeetBook》leetcode题解(19):Remove Nth Node From End of List[E]——双指针解决链表倒数问题
- oracle错误分析:ora-04063:view view_test has errors
- mfc 类的const对象
- GAN背后的数学原理
- javaweb(七)——HttpServletResponse对象(一)
热门文章
- POJ 3126 --Father Christmas flymouse【scc缩点构图 &;amp;&;amp; SPFA求最长路】
- XAudio2学习之调节音调
- 汉语拼音转换工具(Python 版)
- muscle 软件进行多序列比对
- iOS: 动态更改 backBarButtonItem 的 title
- wine for MacOS
- vi编辑器的使用方式
- SQL2000系统表、存储过程、函数的功能介绍及应用
- 文字描边css
- springboot+mybatis集成多数据源MySQL/Oracle/SqlServer