每天一点Android开发_SQLite数据库操作

轻量级数据库,SQLite遵守ACID(Atomicity,Consistency,Isolation,Durability)原则,SQLite不要求系统提供太大的资源,仅不到1MB的内存空间就可以运行SQLite.SQLite主要是应用在小型嵌入式设备中,目前被很多嵌入式产品广泛使用,支持Windows,Linux,Unix等主流操作系统,可以和很多程序语言相结合,比如 C#,Tcl,Java等,处理速度快,

SQlite存储了android系统的许多应用信息,比如联系人,来电信息,短信息记录等,为了方便存储,管理,查询数据,Android向外部开放了SQLite数据库相关的API,通过这些API,开发者可以实现对基本数据库,表,及记录的操作,包括数据库的创建,数据库的删除,表创建,表删除,记录插入,记录删除,记录更新,记录查询等.

1,数据库操作

1),数据库的创建及打开

SQLite提供了openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags)方法打开指定的数据库.

其中,path 是指数据库的路径,

factory用于构造查询时的游标,若factory为null,则表示使用默认的factory构造游标

flags指定数据库打开的模式有四种模式:OPEN_READONLY(只读方式打开) OPEN_READWRITE(以可读可写方式打开) CREATE_IF_NECESSARY(首先检查数据库是否存在,不存在则创建) NO_LOCALIZED_COLLATORS(打开数据库时,不按照本地化语言对数据库进行排序),若同时指定多个模式.可使用"|"隔开.也可以使用openOrCreateDatabase(String path,SQlite-Database.CursorFactory)打开数据库,.创建数据库就是在文件系统中创建一个SQLite数据库的文件,应用程序必须对创建数据库的目录 有可写的权限,否则会抛出异常

示例:

  try {

SQLiteDatabase myData = this.openDatabase("qdu_st.db",nul,NO_LOCALIZED_COLLATORS);

}

catch(Exception e) {

db=null;

}

2),数据库删除

SQLite提供了deleteDatabase删除指定的数据库,例如

this.deleteDatabase("qdu_st.db")

3),数据库关闭

SQLite提供关闭数据库的方法,sqliteDatabase.close;

2,表操作

1),表创建,数据库包含多个表,每个表可存储多条记录,数据库创建之后,下部就是创建表,SQLite没有提供专门的方法创建表,可以通过execSQL方法并指定SQL语句创建表

String SQL_CT = "CREATE TABLE student(ID INTEGER PRIMARY KEY,age INTEGER,name TEXT)";

sqliteDatabase.execSQL(SQL_CT);

2),表删除,,通过execSQL方法指定SQL语句删除表

String SQL_DROP_TABLE = "DROP TABLE student";

sqliteDatabase.execSQL(SQL_DROP_TABLE);

3,记录操作

1),记录插入

ContentValues contentValues = new ContentVlaue();

contentValues.put(ID,1);

contentValues.put.(age,26);

contentValues.put(name,"StudentA")

sqliteDatabase.insert(student,null,contentValues)

或者

String SQL_INSERT="INSERT INTO student(ID ,age ,name) values (1,26,"StudentA")";

sqliteDatabase,execSQL(SQL_INSECT);

2),记录更新

ContentValues contentValues = new ContentVlaue();

contentValues.put(ID,1);

contentValues.put.(age,25);

contentValues.put(name,"StudentA")

sqliteDatabase.update(student,contentValues,"name=StudentA",null);

或者

String SQL_UPDATE = " UPDATA student SET age=25 where name="StudentA"";

sqlDatabase.execSQL(SQL_UPDATE);

3),记录查询

sqliteDatabase.query(true,student,null,"name="StudentA",null,null,null,null,null);

或者

String SQL_QUERY = "SELECT age name from student WHERE name="StudentA"";

sqliteDatabase.execSQL(SQL_QUERY);

4),记录删除

sqliteDatabase.update(student,"name=StudentA",null);

游标Cursor的使用

在数据库中,Cursor提供了一种对从表中检索出的数据进行操作的灵活手段,本质就是:一种能从包括多条数据记录的结果集中每次提取一条记录的机制.游标总是与一条SQL语句相关联,因为游标的结果集(可能是零条,一条或者由相关的选择语句检索出来的多条记录,)和结果集中指向特定记录的游标位置组成,,当决定对结果集进行处理时,必须声明一个指向该结果集的游标,,就像是打开文件所得到的文件句柄一样,只要文件打开成功,这个文件句柄就可以代表该文件,

游标允许应用程序对查询语句SELECT返回的行结果集中每一行进行相同或不同的操作,,而不是对整个结果集进行同一种操作,可以基于游标位置对表中数据进行删除或者更新,,所以正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个处理方式能够沟通

游标是 系统为用户开设的一个数据缓存区,存放SQL语句的执行结果,每个游标区都有一个名字,用户可使用SQL语句逐一从游标中获取记录,赋给主变量并交由主语言进一步处理,

主语言是面向记录的.一组主变量只能存放一条记录.,仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求,嵌入式SQL引入了Cursor的概念,用来协调两种不同的处理方式.再数据库开发过程中,当检索的数据只是一条记录时,所编写的事务代码往往使用SELECT INSERT语句,.但是我们常常会从某一结果集中逐一读取一条记录,那么如何解决这种问题呢,,游标为我们提供了一种极为优秀的解决方案.如下,,,,游标可分为三种类型:

Transact_SQL游标,API服务器游标和客户游标,

(1)Transact_SQL 游标
Transact_SQL 游标是由DECLARE CURSOR 语法定义、主要用在Transact_SQL脚本、存储过程和触发器中。Transact_SQL 游标主要用在服务器上,由从客户端发送给服务器的Transact_SQL 语句或是批处理、存储过程、触发器中的Transact_SQL 进行管理。 Transact_SQL 游标不支持提取数据块或多行数据。
(2)API游标
API 游标支持在OLE DB, ODBC 以及DB_library 中使用游标函数,主要用在服务器上。每一次客户端应用程序调用API 游标函数,MS SQL SEVER 的OLE DB 提供者、ODBC驱动器或DB_library 的动态链接库(DLL) 都会将这些客户请求传送给服务器以对API游标进行处理。
(3)客户游标
客户游标主要是当在客户机上缓存结果集时才使用。在客户游标中,有一个缺省的结果集被用来在客户机上缓存整个结果集。客户游标仅支持静态游标而非动态游标。由于服务器游标并不支持所有的Transact-SQL语句或批处理,所以客户游标常常仅被用作服务器游标的辅助。因为在一般情况下,服务器游标能支持绝大多数的游标操作。由于API 游标和Transact-SQL 游标使用在服务器端,所以被称为服务器游标,也被称为后台游标,而客户端游标被称为前台游标。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值