首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Carson带你学Android:SQLlite数据库操作全解析(SQLiteOpenHelper类)

前言 在Android开发中,主要的数据存储有5种,具体如下 其中,SQLite数据库的存储方式 非常常用 今天我将带大家全面了解关于Android SQLite数据库的操作(增、删、查、改) 目录...数据库第1次创建时 则会调用,即 第1次调用 getWritableDatabase() / getReadableDatabase()时调用 // 在继承SQLiteOpenHelper类的子类中复写...数据库升级时自动调用 // 在继承SQLiteOpenHelper类的子类中复写 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion...} /** * 复写onUpgrade() * 调用时刻:当数据库升级时则自动调用(即 数据库版本 发生变化时) * 作用:更新数据库表结构...* 注:创建SQLiteOpenHelper子类对象时,必须传入一个version参数,该参数 = 当前数据库版本, 若该版本高于之前版本, 就调用onUpgrade() */ @

98520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析

    前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增、删、查、改) ---- 目录 ? ---- 1....SQLite数据库介绍 SQLite是Android内置的一个小型、关系型、属于文本型的数据库。...SQLiteOpenHelper类的数据库操作方法介绍 方法名 作用 备注 onCreate() 创建数据库 创建数据库时自动调用 onUpgrade() 升级数据库 close() 关闭所有打开的数据库对象...常见数据库使用 数据库操作无外乎:“增删查改”: 对于“增、删、改(更新)”这类对表内容变换的操作,需先调用getWritableDatabase()获得一个可写数据库对象,在执行的时候调用通用的...实例Demo Demo描述:创建数据库并对数据库进行操作(增、删、查、改) 实现步骤: 实现子类继承SQLiteOpenHelper类(复写onCreat()、onUpgrade()) 在MainActivity

    30.8K1611

    数据存储之-SQLite数据库一

    另外, SQLite 在解析CREATE TABLE 语句时, 会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息。...---- 使用SQLiteOpenHelper类创建数据库与版本管理 对于涉及数据库的app,我们不可能手动地去给他创建数据库文件,所以需要在第一次启用app 的时候就创建好数据库表;而当我们的应用进行升级需要修改数据库表的结构时...(database):首次使用软件时生成数据库表 onUpgrade(database,oldVersion,newVersion):在数据库的版本发生变化时会被调用, 一般在软件升级时才需改变版本号,...( )方法定义版本号发生改变后执行的操作(如不需要,故此方法为空) ---- 如何查看我们生成的db文件 当我们调用上面的MyDBOpenhelper的对象的getWritableDatabase()就会在下述目录下创建我们的...:查看建表语句 .quit:退出数据库的编辑 .exit:退出设备控制台 使用Android提供的API操作SQLite ?

    67620

    【Android从零单排系列四十二】《Android数据存储方式-SQLite数据库》

    一 SQLite数据库基本介绍 Android提供了SQLite数据库作为轻量级的嵌入式数据库解决方案,用于在应用程序中存储和管理结构化的数据。...数据库迁移:当应用程序升级时,可能需要对数据库进行迁移操作,以保持数据的一致性。可以使用SQLiteOpenHelper的onUpgrade方法来执行迁移逻辑。...关闭数据库: 在不再需要使用数据库时,通过调用close()方法来关闭数据库连接,例如:db.close()。 这些是SQLite数据库的基本使用方法。...你可以根据自己的具体需求,使用合适的SQL语句和API来完成数据库的增删改查操作。同时,要确保在进行数据库操作时遵循良好的数据库设计原则,并注意处理异常情况以及对数据库性能进行优化。...onCreate(SQLiteDatabase db):当数据库第一次创建时调用,可以在其中执行创建表的操作。

    25630

    Android开发笔记(三十)SQLite数据库基础操作

    SQLite语法 SQLite是一个小巧的嵌入式数据库,使用方便、开发简单,手机上最早由ios运用,后来android兴起同样也采用了sqlite。...table_name ADD COLUMN ... 4、SQLite支持如下字段类型:整型INTEGER、字符串VARCHAR、浮点数FLOAT,但不支持布尔类型 5、SQLite建表时需要一个唯一标识的字段...执行本方法时,系统会判断是否已执行setTransactionSuccessful,如之前已设置则提交,如没有设置则回滚。...其中onCreate只在第一次打开数据库时执行,而onUpgrade在打开数据库发现版本变化时都会执行,在onUpgrade函数内部,我们可以根据不同的新旧版本号进行相应的处理。...数据库操作的工程代码 点此查看Android开发笔记的完整目录

    65830

    Android SQLite数据库

    区别为:当数据库不可写入时getReadDatabase()返回的对象将以只读的方式打开,getWritableDatabase()则出现异常。...构造出SQLite实例后,在调用它的getReadableDatabase()或getWritableDatabase()方法就能创建数据库了,数据库文件会存放在/data/data/数据库的最佳写法 之前升级数据库是简单的在onUpgrade()方法中删除当前所有表然后重新执行一遍onCreate()。 这样做的弊端为如果你的应用升级一次数据库用户之前的数据就会被清空。...当指定的数据库版本号大于当前数据库版本号的时候,就会进入onUpgrade()方法中执行更新操作,这里需要为每一个版本号赋予其所对应的数据库变动,然后再onUpgrade()方法中对当前数据库的版本号就行判断...老用户升级时如果当前数据库版本号为2就会执行alter命令,为Book表新增一个category_id列。

    2.1K20

    SQlite三问

    今天就说点简单的咯,说下Android端用的数据库引擎——SQLite。 介绍下SQLite 为什么Android端要使用这个数据库引擎。 谈谈基本语法和市面上的封装库。...它是用C语言构建,在Android系统架构中的系统运行库层的c/c++程序库部分。 为什么Android端要使用这个数据库引擎。...一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。 SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。...DB_NAME, null, version); } @Override public void onCreate(SQLiteDatabase db) { //数据库第一次创建时被调用...数据库名.表名; 2)Android中用法: //删除数据 getWritableDatabase().delete(表名, "name=?"

    1.2K20

    android下创建一个sqlite数据库

    Sqlite数据库是开源的c语言写的数据库,android和iphone都使用的这个,首先需要创建数据库,然后创建表和字段,android提供了一个api叫SQLiteOpenHelper数据库的打开和创建类...OnCreate(SQLiteDatabase db)方法是数据库第一次被创建时回掉,用来创建表以及初始化参数,参数就是我们创建的数据库。...当new出来helper对象的时候,数据库并不会被创建,只有当helper对象调用了getWritableDatabase()方法或者getReadableDatabase()时候才会被创建。...helper代码: package com.tsh.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase...; import android.database.sqlite.SQLiteOpenHelper; public class PersonSQLiteOpenHelper extends SQLiteOpenHelper

    67120

    Android SQLite 数据库学习

    SQLite 数据库简介   SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本。...它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需要占用几百kB的存储空间,这也是Android移动设备采用SQLite数据库的重要原因之一。   ...SQLite 数据库创建   在Android系统中,创建SQLite数据库是非常简单的。...Android系统推荐使用 SQLiteOpenHelper 的子类创建数据库,因此需要创建一个继承自SQLiteOpenHelper,并重写该类中的onCreate()方法和onUpgrade()方法即可...需要注意的是,使用完SQLiteDatabase对象后定要调用close()方法关闭,否则数据库连接会一直存在,不断消耗内存,当系统内存不足时将获取不到SQLiteDatabase对象,并且会报出数据库未关闭异常

    1.2K00

    Android学习--持久化(三) SQLite & LitePal

    ,Android有LitePal, 这一篇文章好好总结一下 SQLite & LitePal,由于自己用的是Mac系统,在配置 adb的时候也遇到了一些问题,把这些问题也都说一下,避免大家跳太多的坑吧。...这个我们就先说说在Mac系统下配置这个adb,因为这个不管是我们使用原生SQLite还是用LitePal,这东西都是必须的,说以先说说它的一个配置: adb ----       adb是 Android...SQLite ----       一:SQLite的创建       Android为了让我们更加方便的管理数据库,专门提供了一个SQLiteOpenHelper的抽象类,这意味的我们要是想使用它的话就得我们创建一个类去继承它...getReadableDatabase()方法返回的对象将以只读的方法打开数据库,而getWritableDatabase()方法则将出现异常。       ...LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发时最常用到的一些数据库功能进行了封装,使得不用编写一行SQL语句就可以完成各种建表、増删改查的操作

    80230

    【Android开发基础系列】数据持久化专题

    {         db.execSQL("ALTER TABLE person ADD COLUMN other STRING");     } }         正如上面所述,数据库第一次创建时...onCreate方法会被调用,我们可以执行创建表的语句,当系统发现版本变化之后,会调用onUpgrade方法,我们可以执行修改表结构等语句。        ...,释放数据库资源,这一个步骤在我们整个应用关闭时执行,这个环节容易被忘记,所以朋友们要注意。        ...我们获取数据库实例时使用了getWritableDatabase()方法,也许朋友们会有疑问,在getWritableDatabase()和getReadableDatabase()中,你为什么选择前者作为整个应用的数据库实例呢...创建后就会被调用,Android开机后,ContentProvider在其它应用第一次访问它时才会被创建。

    47220

    安卓开发_数据存储技术_sqlite

    SQLite已经被多种软件和产品使用 二、SQLite特性 1 2 1、轻量级 3 SQLite和C\S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。...4 2、独立性 5 SQLite数据库的核心引擎本身不依赖第三方软件,使用它也不需要“安装”,所以在使用的时候能够省去不少麻烦。...8 4、跨平台 9 SQLite数据库支持大部分操作系统,除了我们在电脑上使用的操作系统之外,很多手机操作系统同样可以运行,比如Android、Windows Mobile、Symbian、Palm等...12 6、安全性 13 SQLite数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。...在某个进程或线程向数据库执行写操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。

    82570

    12.Android-SQLiteOpenHelper使用

    可能会被写操作独占,从而导致其它读写操作阻塞或出错 2.SQLiteOpenHelper介绍 为了在本地创建SQLite数据库,我们需要创建一个SQLiteOpenHelper的子类,这里取名的为MyOpenHelper...,如果传入null 则表示创建临时数据库,在应用退出之后,数据就会丢失 //第三个参数:游标工厂 如果使用系统默认的游标工厂就传入null,一般都填null //第四个参数:数据库的版本号 用版本号来控制数据库的升级和降级...,这里通过db.execSQL(String)来创建表. onCreate用来创建数据库表结构的,该函数在第一次创建数据库时调用,也就是在调用SQLiteOpenHelper类的getWritableDatabase...可以看到只有调用getWritableDatabase()或者getReadableDatabase()时,才会真正创建数据库。...newVersion : 显示升级之后的新数据库版本。 当数据库需要升级时调用。使用此方法删除表、添加表或执行升级到新模式版本所需的任何其他操作。

    1.1K10

    android学习笔记----SQLite数据库

    :https://developer.android.google.cn/training/data-storage/room 用SQLite语句执行: 首先看到界面: ​​​​ 代码如下: MainActivity.java...不同的是,当数据库不可写入的时候(如磁盘空间已满),getReadableDatabase()方法返回的对象将以只读的方式去打开数据库,而getWritableDatabase()方法将抛出异常。    ...构建出SQLiteOpenHelper的实例之后,在调用它的getReadableDatabase()和getWritableDatabase()就能够创建数据库了。...注意:当用ContentProvider返回一个Cursor时,db是不能关闭的,否则抛出异常java.lang.IllegalStateException: Cannot perform this operation...传递NULL将导致包括所有行组,并且在不使用行分组时是必需的。     orderBy:如何对行进行排序,格式化为SQLOrderBy子句(不包括Order本身)。

    1K20

    SQlite数据库简介Android网络与数据存储

    Android网络与数据存储 第二章学习 ---- SQlite数据库#### 概要: SQLite看名字就知道是个数据库,Android专门为移动端内置了此种轻量级工具,并且为了方便在Java语言中进行数据库操作..., name, factory, version); } //数据库第一次创建时被调用 @Override public void onCreate(SQLiteDatabase...(CreateTableCategory); } //软件版本号发生改变时调用 @Override public void onUpgrade(SQLiteDatabase...: 我在代码的第一部分中,将需要执行的SQL语言,转换为字符串对象进行操作,第一个的意思是: 新建一张表"Create Table Book"命名为"Book"; 在表中存在这些列"id integer...super中设置好要创建的数据库名,版本号 Step 3:重写onCreate( )方法创建表结构 Step 4:重写onUpgrade( )方法定义版本号发生改变后执行的操作 ---- 以上完成了一个自定义

    96030

    数据库的事务

    为什么需要事务,保证操作同时成功,最常见的场景银行转账,需要修改一下上一节的数据库进行模拟转账操作,修改数据库表,这时需要用到PersonSQLiteOpenHelper类中的onUpgrade()方法...,修改一下构造方法中的version,就会回调到onUpgrade()方法,在此方法里面执行修改表的sql语句 这个方法只在版本号发生变化的时候调用一次,参数中有SQLiteDatabase对象,调用db...对象的execSql()方法,传入sql语句 alter table person add account varchar(20) ,增加一个字段,把数据库文件导出到桌面上,使用SQLite expert...Cmd 执行adb shell命令,进入android系统,cd /data/data/包名/database/,执行sqlite3 persion.db 进入数据库命令行。...PersonSQLiteOpenHelper helper =new PersonSQLiteOpenHelper(getContext()); SQLiteDatabase db=helper.getWritableDatabase

    83720

    【Jetpack】使用 Room 中的 Migration 升级数据库异常处理 ( 多个数据库版本的迁移 | fallbackToDestructiveMigration() 函数处理升级异常 )

    数据库中的架构时 , 将需要执行数据库迁移以保留旧数据并防止应用程序崩溃 ; 自动运行 : Room Migration 数据库迁移工具 会 自动 创建迁移文件 并将其应用于数据库 , 以使 SQLite...$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.java:124) at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked...(SQLiteOpenHelper.java:435) at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java...创建 RoomDatabase.Builder 时 , 执行一下 RoomDatabase.Builder#fallbackToDestructiveMigration() 函数 , 之后在使用 Migration...迁移数据库时 , 如果出现异常 , 就会重建数据库表 , 但是之前的数据库数据也相应会被清空 ; // 创建数据库 instance

    57020
    领券