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帮助类的具体操作:

最新文章

  1. UI: 标题栏
  2. HTTP协议及其请求头分析
  3. 20145317彭垚 《Java程序设计》第五次实验报告
  4. PHP使用Mysql事务
  5. C++中数组求偏移量计算公式
  6. spring各个包之间的依赖关系
  7. C#“同步调用”、“异步调用”、“异步回调”
  8. python三元运算符
  9. maven项目,去除jar包中的不想要的依赖关系(Document root element "beans", must match DOCTYPE root "null". )
  10. mysql字符串操作相关函数用法总结
  11. [LeetCode] Cherry Pickup 捡樱桃
  12. QTL定位相关
  13. Numpy 笔记: 多维数组的切片(slicing)和索引(indexing)【转】
  14. Windows10开发手记-Windows App Certification Kit使用教程
  15. ActiveMQ broker 非持久化queue消息的入队、出队和应答
  16. 《LeetBook》leetcode题解(19):Remove Nth Node From End of List[E]——双指针解决链表倒数问题
  17. oracle错误分析:ora-04063:view view_test has errors
  18. mfc 类的const对象
  19. GAN背后的数学原理
  20. javaweb(七)——HttpServletResponse对象(一)

热门文章

  1. POJ 3126 --Father Christmas flymouse【scc缩点构图 && SPFA求最长路】
  2. XAudio2学习之调节音调
  3. 汉语拼音转换工具(Python 版)
  4. muscle 软件进行多序列比对
  5. iOS: 动态更改 backBarButtonItem 的 title
  6. wine for MacOS
  7. vi编辑器的使用方式
  8. SQL2000系统表、存储过程、函数的功能介绍及应用
  9. 文字描边css
  10. springboot+mybatis集成多数据源MySQL/Oracle/SqlServer