SQLite -- 嵌入式关系型数据库
- SQLite -- 嵌入式关系型数据库
- 1。SQLite的数据类型:Typelessness(无类型)
- 1,能够保存不论什么类型的数据到表的随意列中
- 2。支持常见的类型如: NULL, VARCHAR, TEXT, INTEGER, BLOB, CLOB等
- 3,唯一的例外:integer primary key 此字段仅仅能存储64位整数,即当主键被定义为integer时仅仅能存储64位整数
- 注意:SQLite数据库中列一旦创建不能改动,假设一定要改动,须要又一次创建表,拷贝数据
- 2,Android提供了一个SQLiteOpenHelper抽象类。该类用于管理数据库的版本号,经常使用的3个方法:
- onCreate 数据库创建时运行(第一次连接数据库,获取数据库对象时运行)
- 注:数据库什么时候创建?第一次连接数据库时创建数据库(文件)。此时onCreate会被调用
- openHelper.getReadableDatabase();
- openHelper.getWritableDatebase();
- getReadableDatabase()和getWritableDatabase()的差别:
- 查看源码可知:getReadableDatabase()在通常情况下返回的就是getWritableDatabase()拿到的数据库。仅仅有在抛出异常的时候才会以仅仅读方式打开
- onUpgrade 数据库更新时运行(一般每次更新时都要改动版本号号)
- onOpen 数据库每次打开时运行(每次打开数据库时调用,在onCreate,onUpgrade方法之后)
- 3,Android提供了一个SQLiteDatabase类,使用该类能够对数据进行CRUD的操作
- 注:和JDBC訪问数据库不同,操作SQLite数据库无需载入驱动,不用获取连接,直接使用SQLiteDatabase对象运行SQL语句
- execSQL(String sql)方法能够运行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句;
- execSQL(String sql, Object[] bindArgs)方法的第一个參数为SQL语句。第二个參数为SQL语句中占位符參数的值。參数值在数组中的顺序要和占位符的位置相应。
- rawQuery()方法用于运行select语句。
- SQLiteDatabase还封装了 insert()、delete()、update()、query()4个方法。也能够对数据库进行操作
- Cursor是结果集游标。用于对结果集进行随机訪问,Cursor与JDBC中的ResultSet作用一样。使用moveToNext()方法能够将游标从当前行移动到下一行,假设已经移过了结果集的最后一行,返回结果为false。否则为true。
- SQLiteDatabase中的事务控制:
- beginTransaction() 开启事务
- setTransactionSuccessful() 设置事务成功标记
- endTransaction() 结束事务
- 注:endTransaction()须要放在finally中运行,否则事务仅仅有到超时的时候才自己主动结束,会减少数据库并发效率
SQLite -- 嵌入式关系型数据库的更多相关文章
- 使用嵌入式关系型SQLite数据库存储数据
除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1.SQLite3支持 ...
- sqlite嵌入式数据库简介及特性
p.p1 { margin: 0; font: 12px "Helvetica Neue"; color: rgba(69, 69, 69, 1) } p.p2 { margin: ...
- SQLite vs MySQL vs PostgreSQL:关系型数据库比较
自1970年埃德加·科德提出关系模型之后,关系型数据库便开始出现,经过了40多年的演化,如今的关系型数据库种类繁多,功能强大,使用广泛.面对如此之多的关系型数据库,我们应该如何权衡找出适合自己应用场景 ...
- sqlite嵌入式数据库C语言基本操作(1)
sqlite嵌入式数据库C语言基本操作(1) :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0, ...
- Python信息采集器使用轻量级关系型数据库SQLite
1,引言Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.SQLite作为后端数据库,可以搭配Python建网站,或者为python网络爬虫存储数据.SQLite还在其它 ...
- SQLite/嵌入式数据库
SQLite/嵌入式数据库 的项目要么不使用数据库(一两个文配置文件就可以搞定),要么就会有很多的数据,用到 postgresql,操练sqlite的还没有.现在我有个自己的小测试例子,写个数据库对比 ...
- 非关系型数据库(NoSql)
最近了解了一点非关系型数据库,刚刚接触,觉得这是一个很好的方向,对于大数据 方面的处理,非关系型数据库能起到至关重要的地位.这里我主要是整理了一些前辈的经验,仅供参考. 关系型数据库的特点 1.关系型 ...
- 关系型数据库工作原理-时间复杂度(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...
- 关系型数据库工作原理-事务管理(二)(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...
随机推荐
- js如何实现php的in_array()
var arr = [ 4, "Pete", 8, "John" ]; jQuery.inArray("John", arr); //3 j ...
- HAVING使用子查询
HAVING使用子查询 //查询各部门平均工资,显示平均工资大于 //公司整体平均工资的记录 select deptno,avg(sal) from emp group by ...
- Hbase读取数据
get命令和HTable类的get()方法用于从HBase表中读取数据.使用 get 命令,可以同时获取一行数据.它的语法如下: get ’<table name>’,’row1’ 下面的 ...
- CSS学习(四)
伪类(Pseudo-classes) CSS伪类是用来添加一些选择器的特殊效果. 伪类的语法: selector:pseudo-class {property:value;} CSS类也可以使用伪类: ...
- [React] Understanding setState in componentDidMount to Measure Elements Without Transient UI State
In this lesson we'll explore using setState to synchronously update in componentDidMount. This allow ...
- iOS (封装)一句话调用系统的alertView和alertController
前言: 本文仅作参考存留,请用新版封装:iOS 更加优雅便捷的UIAlertView/UIAlertController封装使用 UIAlertController是iOS8.0之后出来的新方法,其将 ...
- ORA-1157错误解决
一.错误描述 ORA-1157, "cannot identify/lock data file %s - see DBWR trace file" 引起的原因: 因为数据文件已经 ...
- calender怎么获取每周的周日(给每周的周日特定时间点设置定时)
获取每周的周日 //如果是周日,特殊处理.老外的周日-周六为一周 calendarTemp.add(Calendar.WEEK_OF_MONTH,1); calendarTemp.set(Calend ...
- js调节图片的亮度
js调节图片的亮度:(使用CSS3的滤镜) 1.实现点亮图标.熄灭图标的效果 效果图: 页面代码: <!DOCTYPE html> <%@ page language="j ...
- png库结合zlib库使用出现的一个链接问题的解决
作者:朱金灿 来源:http://blog.csdn.net/clever101 要使用png库,首先得编译png库,要编译png库,得依赖zlib库的头文件.在使用png库读取一个png文件时,代码 ...