云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 安卓-Junit-文件存储-XML解析方式-数据库-ListView-内容提供者-观察者

安卓-Junit-文件存储-XML解析方式-数据库-ListView-内容提供者-观察者

  • 62 次阅读
  • 3 次下载
  • 2025/6/15 11:51:14

中的数据库

安卓中使用的数据库都是SQLite数据库,SQLite中的一个数据库就是一个文件 安卓SDK中提供了一套操作SQLite的API。

SQLite特点

?

Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型

例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数。 除非是主键被定义为Integer,这时只能存储64位整数

?

创建数据库的表时可以不指定数据类型,例如:

CREATE TABLE person(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20)) CREATE TABLE person(id INTEGER PRIMARY KEY AUTOINCREMENT, name)

?

SQLite支持大部分标准SQL语句,增删改查语句都是通用的,分页查询语句和MySQL相同

SELECT * FROM person LIMIT 20 OFFSET 10 SELECT * FROM person LIMIT 10,20

?

和JDBC访问数据库不同,操作SQLite数据库无需加载驱动,不用获取连接,直接可以使用

获取SQLiteDatabase对象之后通过该对象直接可以执行SQL语句 SQLiteDatabase.execSQL() SQLiteDatabase.rawQuery()

通过SQLiteOpenHelper.getWritableDatabase();方式创建的数据库默认保存在:/data/data/ 目录下

创建数据库与表的步骤

1、 创建一个类继承SQLiteOpenHelper,这会实现两个方法,且要显示写一个构造函数

构造函数,就是用来调用父类的构造函数来创建或打开数据库用的

2、 在onCreate()方法是数据库第一次创建的时候自动执行的,在这里写上创建表的语句 3、 onUpgrade()方法是数据库版本升级的时候自动调用的

4、 写一个测试类继承AndroidTestCast,调用刚刚创建的类的getWritableDatabase();方法即可以获取到一个可写的数据库对象(SQLiteDatabase)。

SQLiteDatabase对象就有增、删、改、查的方法。通过查看getWritableDatabases()方法的源代码可以了解到获取数据库的原理。

具体代码在:10.SQLite项目中的

com.itheima.sqlite包:DBOpenHelper文件、BTest文件。

SQLite的增删改查方式一

---------------使用SQLiteDatabase的execSQL()方法和rawQuery( )方法

具体代码(包括分页查询)在:10.SQLite项目中的:

com.itheima.sqlite包:BOpenHelper文件

com.itheima.sqlite.domain包:Person文件

com.itheima.sqlite.dao包:PersonDaoClassic文件 com.itheima.sqlite.test包:DBTest文件。

关于getWritableDatabase()和getReadableDatabase()的区别

1、getWritableDatabase()获取到的数据库并不是只能写,它也能读

2、 getReadableDatabase()这也不是说获取只能读的数据库,执行方法时,方法内部会先调用:getWritableDatabase(),

如果获取不到可写的数据库才去获取一个只能读的数据库。

SQLite的增删改查方式二

---------------使用SQLiteDatabase的insert( )、update( )、delete( )方法和query( )方法

使用几个增删改查的方法好处是省略了写SQL关键字,只需指定要操作的表名,字段名,值,条件等即可。

具体代码(包括分页查询)在:10.SQLite项目中的:

com.itheima.sqlite包:BOpenHelper文件 com.itheima.sqlite.domain包:Person文件 com.itheima.sqlite.dao包:PersonDao文件 com.itheima.sqlite.test包:DBTest文件。

关于数据库的总结:

-------------总结所用到的类的功能

SQLiteOpenHelper:要想创建或者得到一个数据库,必须要创建一个类继承它,通过创建的个类可以得到一个数据库(即SQLiteDatabase对象),

并且可以在这个类的onCreate()生命周期方法里创建数据库表;

SQLiteDatabase: 这个类提供了增删改查的方法。其中查的方法返回的是一个Cursor对象 Cursor:这个类用来保存查数据库时返回的一条一条的记录,该对象提供了获取这些记录的方法 ContentValues:相当于Map,是用于保存键值对,用于在SQLite的增删改查方式二中需要指定的值。

事务管理

?

在使用SQLite数据库时可以用SQLiteDatabase类中定义的相关方法控制事务

beginTransaction() 开启事务

setTransactionSuccessful() 设置事务成功标记 endTransaction() 结束事务

?

endTransaction()需要放在finally中执行,否则事务只有到超时的时候才自动结束,会降低数据库并发效率

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

中的数据库 安卓中使用的数据库都是SQLite数据库,SQLite中的一个数据库就是一个文件 安卓SDK中提供了一套操作SQLite的API。 SQLite特点 ? Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数。 除非是主键被定义为Integer,这时只能存储64位整数 ? 创建数据库的表时可以不指定数据类型,例如: CREATE TABLE person(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20)) CREATE TAB

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com