第一次写博客,关于刚开始学习Android studio SqLite

据说写这个能帮助自己更好的回忆以及学习。主要是写给自己的,如果有其他人观看,如果有问题希望直接指出,我无法保证自己是对的,如果出错,实在抱歉。

首次接触android studio 的SqLite

SQL本质上是一种编程语言,它的学名叫作”结构化查询语言”(全称为Structured Query Language,简称SQL)。不过SQL语言并非通用的编程语言,它专用于数据库的访问和处理,更像是一种操作命令,所以常说SQL语句而不说SQL代码。标准的SQL语句分为3类:数据定义、数据操纵和数据控制。

SQLite是一种小巧的嵌入式数据库,使用方便、开发简单。如同MySQL、Oracle那样,SQLite也采用SQL语句管理数据,由于它属于轻型数据库,不涉及复杂的数据控制操作,因此App开发只用到数据定义和数据操纵两类SQL。

表格的创建动作由create命令完成,格式为”CREATE TABLE IF NOT EXISTS 表格名称(以逗号分隔的各字段定义);”

①SQL语句不区分大小写,无论是create与table这类关键词,还是表格名称、字段名称,都不区分大小
写。唯一区分大小写的是被单引号括起来的字符串值。
②为避免重复建表,应加上IF NOT EXISTS关键词,例如CREATE TABLE IF NOT EXISTS 表格名
称……

③SQLite支持整型INTEGER、长整型LONG、字符串VARCHAR、浮点数FLOAT,但不支持布尔类型。布
尔类型的数据要使用整型保存,如果直接保存布尔数据,在入库时SQLite会自动将它转为0或1,其中0
表示false,1表示true。
④建表时需要唯一标识字段,它的字段名为id。创建新表都要加上该字段定义,例如id INTEGER
PRIMARY KEY AUTOINCREMENT NOT NULL。

SQL语句毕竟只是SQL命令,若要在Java代码中操纵SQLite,还需专门的工具类。SQLiteDatabase便是Android提供的SQLite数据库管理器。

由于SQLiteDatabase存在局限性,一不小心就会重复打开数据库,处理数据库的升级也不方便;因此Android提供了数据库帮助器SQLiteOpenHelper,帮助开发者合理使用SQLite。

SQLiteOpenHelper的具体使用步骤如下:

步骤一,新建一个继承自SQLiteOpenHelper的数据库操作类,按提示重写onCreate和onUpgrade两个方法。其中,onCreate方法只在第一次打开数据库时执行,在此可以创建表结构;而onUpgrade方法在数据库版本升高时执行,在此可以根据新旧版本号变更表结构。

步骤二,为保证数据库安全使用,需要封装几个必要方法,包括获取单例对象、打开数据库连接、关闭数据库连接,说明如下:获取单例对象:确保在App运行过程中数据库只会打开一次,避免重复打开引起错误。打开数据库连接:SQLite有锁机制,即读锁和写锁的处理;故而数据库连接也分两种,读连接可调用getReadableDatabase方法获得,写连接可调用getWritableDatabase获得。关闭数据库连接:数据库操作完毕,调用数据库实例的close方法关闭连接。

步骤三, 提供对表记录增加、删除、修改、查询的操作方法。

能被SQLite直接使用的数据结构是ContentValues类,它类似于映射Map,也提供了put和get方存取键值对。区别之处在于:ContentValues的键只能是字符串,不能是其他类型。ContentValues主要用于增加记录和更新记录,对应数据库的insert和update方法。

记录的查询操作用到了游标类Cursor,调用query和rawQuery方法返回的都是Cursor对象,若要获取全部的查询结果,则需根据游标的指示一条一条遍历结果集合

其中遇见最主要问题就是

SQLiteOpenHelper的onCreate方法只在第一次打开数据库时执行。我理解为:就是创建数据库时会执行的语句,只执行一次,只在数据库创建时执行,后面打开数据库都不在执行。

Original: https://blog.csdn.net/m0_73821441/article/details/127553658
Author: 橴纆
Title: 第一次写博客,关于刚开始学习Android studio SqLite

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/815195/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球