欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

AndroidSQLite数据库创建和使用实战(二)

程序员文章站 2022-06-10 12:25:41
...

这篇就不实战鸟。有些资源还是蛮好的。晒出来和大家分享个链接啥的,网络牛人前辈总是能给我们后辈创造福利,致敬!!!致青春!!!哈哈!关于SQL数据库从基础概念到需微深入的理解描述我从网络发现了一个好网站比课本讲的都好,遂与众人分享,PS:致谢这个

这篇就不实战鸟。有些资源还是蛮好的。晒出来和大家分享个链接啥的,网络牛人前辈总是能给我们后辈创造福利,致敬!!!致青春!!!哈哈!关于SQL数据库从基础概念到需微深入的理解描述我从网络发现了一个好网站比课本讲的都好,遂与众人分享,PS:致谢这个网站,致敬!!

SQL教程:W3School

同时附上我早期开启学霸模式学习SQL语句的笔记photo一张(ps:鄙人不是计算机科班出生,木有学过这些玩意,面向对象也是工作需要在公司才学的。伤不起啊)。

AndroidSQLite数据库创建和使用实战(二)vcnP1LTC68HLo6zXytS00rLT0Lmks8yho7K7tuC94srNo6zL48rH0ru49rHq17zEo7DlsMmho73Tz8LAtMu1y7VBbmRyb2lkwO/D5tXivLi49sDgoaM8L3A+CjxwPs/IwLTV+1NRTGl0ZU9wZW5IZWxwZXLA4LDJo6zI58/CzbzGrMC019S52be9vdjNvKO6PC9wPgo8cD48aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20140310/2014031008452491.jpg" alt="\">

AndroidSQLite数据库创建和使用实战(二)

接着看下SQLiteDatabase吧,也是来自官方截图:

AndroidSQLite数据库创建和使用实战(二)Android系统,为我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版本进行管理来实现前面提出的需求。 为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion),前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结构。当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号,而数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为了实现这一目的,可以把原来的数据库版本设置为2并且在 onUpgrade()方法里面实现表结构的更新。当软件的版本升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后作出相应的表结构及数据更新。getWritableDatabase()和 getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。但 getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用getWritableDatabase()打开数据库就会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。

使用SQLiteDatabase操作SQLite数据库

该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句; rawQuery()方法用于执行select语句。

PS:对于Cursor类没得解释,自己琢磨,提示下,和Map比较像,key-value形式。