以前 Eclipse 时代,调试 SQLite 都是将数据库文件导出到电脑,然后再用软件打开查看。现在我们用 Android Studio,有没有更方便的方法呢?...加载 成功安装后重启 Android Studio,会发现右边的侧边栏出现了 SQLite Exporer,展开后点击「+」会出现三个选项: image.png 我们从下往上说吧。...Local SQLite Database 如果要调试的数据库已经导出在电脑里了,就选择这一项来加载。...Android (Download Database Locally) 通常情况下,我们要调试的数据库是在手机上的,可以用这个功能把数据库提取出来。选择需要调试的设备、项目包名及数据库名就可以了。...Android (Live Device Connection) 上面两种方法的缺点很明显,都无法实时更新数据库。
对 sd卡上sqlite 数据库的操作 Android默认的数据库位置是在 data\data\packageName\databases\目录下的; 有时候因为业务需要我们需要操作位于sd卡的数据库,...就可以通过重写 Context类的方法来实现 重写 ContextWrapper 我们在创建SqliteOpenHelper实例的时候需要传入一个Context 实例,就是通过他来实现的 public...().getPath()+"/dbDemo",name); return file; } /** * Android 4.0后会调用此方法 还有一个2.3以前的方法就重写了...,也没有那么底的版本了 * @param name * @param mode * @param factory * @param errorHandler...@Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade
sky-mxc 总结 转载注明出处:https://sky-mxc.github.io 对 sd卡上sqlite 数据库的操作 Android默认的数据库位置是在 data\data\packageName...\databases\目录下的; 有时候因为业务需要我们需要操作位于sd卡的数据库,就可以通过重写 Context类的方法来实现 重写 ContextWrapper 我们在创建SqliteOpenHelper...().getPath()+"/dbDemo",name); return file; } /** * Android 4.0后会调用此方法 还有一个2.3以前的方法就重写了...,也没有那么底的版本了 * @param name * @param mode * @param factory * @param errorHandler...@Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade
为什么需要事务,保证操作同时成功,最常见的场景银行转账,需要修改一下上一节的数据库进行模拟转账操作,修改数据库表,这时需要用到PersonSQLiteOpenHelper类中的onUpgrade()方法...,修改一下构造方法中的version,就会回调到onUpgrade()方法,在此方法里面执行修改表的sql语句 这个方法只在版本号发生变化的时候调用一次,参数中有SQLiteDatabase对象,调用db...对象的execSql()方法,传入sql语句 alter table person add account varchar(20) ,增加一个字段,把数据库文件导出到桌面上,使用SQLite expert...先添加两条数据,添加数据使用db对象的系统api,先new获取ContentValues对象,调用values对象的put()方法,参数是key val,把数据放进去,调用db对象的insert()方法...Cmd 执行adb shell命令,进入android系统,cd /data/data/包名/database/,执行sqlite3 persion.db 进入数据库命令行。
前言 在Android开发中,主要的数据存储有5种,具体如下 其中,SQLite数据库的存储方式 非常常用 今天我将带大家全面了解关于Android SQLite数据库的操作(增、删、查、改) 目录...数据库第1次创建时 则会调用,即 第1次调用 getWritableDatabase() / getReadableDatabase()时调用 // 在继承SQLiteOpenHelper类的子类中复写...数据库升级时自动调用 // 在继承SQLiteOpenHelper类的子类中复写 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion...db.execSQL(sql); //数据库实际上是没有被创建或者打开的,直到getWritableDatabase() 或者 getReadableDatabase(...MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(this,"test_carson"); //数据库实际上是没有被创建或者打开的
前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增、删、查、改) ---- 目录 ? ---- 1....SQLite数据库介绍 SQLite是Android内置的一个小型、关系型、属于文本型的数据库。...常见数据库使用 数据库操作无外乎:“增删查改”: 对于“增、删、改(更新)”这类对表内容变换的操作,需先调用getWritableDatabase()获得一个可写数据库对象,在执行的时候调用通用的...db.execSQL(sql); //数据库实际上是没有被创建或者打开的,直到getWritableDatabase() 或者 getReadableDatabase...db.execSQL(sql); //数据库实际上是没有被创建或者打开的,直到getWritableDatabase() 或者 getReadableDatabase(
前言 小伙伴们,在上文中我们介绍了Android数据存储中的ContentProvider,本文我们继续盘点介绍Android开发中的另一个数据存储方式SQLite数据库。...一 SQLite数据库基本介绍 Android提供了SQLite数据库作为轻量级的嵌入式数据库解决方案,用于在应用程序中存储和管理结构化的数据。...在onCreate()方法中,使用SQL语句创建数据库和表,例如:CREATE TABLE语句。 在构造方法中指定数据库名称、版本号和表结构等信息,并调用父类的构造方法。...关闭数据库: 在不再需要使用数据库时,通过调用close()方法来关闭数据库连接,例如:db.close()。 这些是SQLite数据库的基本使用方法。...最后,通过调用dbHelper.close()关闭数据库连接。 五 总结 总体而言,Android SQLite数据库是一种灵活、可靠且功能强大的嵌入式数据库解决方案。
今天来给大家讲一下Android中如何存储数据。我编写Android使用的是Java语言,所以今天讲的也是Java版的数据存储。在Android中,数据存储主要有三种,文件存储、Sp、SQLite。...而Sp是Android中的,利用XML文件存储数据的一种方式,要比文件存储简单。SQLite就是一个数据库了,基本操作和数据库大致一样。 1、文件存储 先写一个简洁的登陆界面: ?...数据库 3.1、SQLite数据库的创建 SQLite数据库的创建需要实现抽象类SQLiteOpenHelper,具体先定义一个类MySQLiteOpenHelper继承SQLiteOpenHelper...onCreate()在数据库创建时调用,而onUpgrade()在数据库升级时调用()(Version改变时)。所以onCreate()用于初始化表结构、onUpgrade()用于更新表结构。...SQLite中可以调用DataBase对象的execSQL()方法,通过SQL语句完成大多数操作。具体Android中特有的操作后面我再讲。
SQLite语法 SQLite是一个小巧的嵌入式数据库,使用方便、开发简单,手机上最早由ios运用,后来android兴起同样也采用了sqlite。...其中onCreate只在第一次打开数据库时执行,而onUpgrade在打开数据库发现版本变化时都会执行,在onUpgrade函数内部,我们可以根据不同的新旧版本号进行相应的处理。...废话少说,直接上该示例类的代码: import android.content.Context; import android.database.sqlite.SQLiteDatabase; import...android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class TestDBHelper extends...数据库操作的工程代码 点此查看Android开发笔记的完整目录
SQLite 前言 之前介绍过Android中保存数据的两种方式:SharedPreferences和File,这篇介绍另一种存储数据的方式——数据库。...进入正题,在Android开发的过程中,保存数据是难免的。...onUpgrade 数据库升级时会调用onUpgrade()方法,这里的onUpgrade()方法往user表中添加了性别(gender)属性。 操作数据库 操作数据库,增删查改是免不了的。...小结 使用SQLite就是在本地建了一个数据库,使用数据库中的表来保存数据。...SQLite对数据的操作十分灵活,不过相比SharedPreferences和File在使用上要复杂一些,而且要一点的数据库基础。
今天就说点简单的咯,说下Android端用的数据库引擎——SQLite。 介绍下SQLite 为什么Android端要使用这个数据库引擎。 谈谈基本语法和市面上的封装库。...它是用C语言构建,在Android系统架构中的系统运行库层的c/c++程序库部分。 为什么Android端要使用这个数据库引擎。...SQLite有如下特性,也就决定了其在移动端的地位: 不需要一个单独的服务器进程或操作的系统(无服务器的)。 SQLite 不需要配置,这意味着不需要安装或管理。...一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。 SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。...(SQLiteDatabase db, int oldVersion, int newVersion) { //数据库版本变化时调用 } } 增。
,Android有LitePal, 这一篇文章好好总结一下 SQLite & LitePal,由于自己用的是Mac系统,在配置 adb的时候也遇到了一些问题,把这些问题也都说一下,避免大家跳太多的坑吧。...这个我们就先说说在Mac系统下配置这个adb,因为这个不管是我们使用原生SQLite还是用LitePal,这东西都是必须的,说以先说说它的一个配置: adb ---- adb是 Android...SDK自带的一个调试工具,使用这个工具可以直接对连接在电脑上的手机或者模拟器进行调试操作,使用adb shell 可以对数据库和表的创建情况进行检查。...SQLite ---- 一:SQLite的创建 Android为了让我们更加方便的管理数据库,专门提供了一个SQLiteOpenHelper的抽象类,这意味的我们要是想使用它的话就得我们创建一个类去继承它...sqLiteDatabase.insert("Book",null,values); //这里有个问题需要我们注意一下 //为什么我们没有在
(AbstractCursor.java:258) 先给出结论, 这是sqlite在Android系统上的一个bug,在需要建立索引的sql语句频繁执行时,会发生这个异常。...即环境变量里没有设置这两个值, 而另外三个目录/var/tmp,/usr/tmp,/tmp在Android系统里都是应用不可写的, 所以会返回0给unixGetTemp, 于是unixGetTemp使用了...所以在根目录创建临时文件一定会失败! etilqs临时文件创建时机 那为什么平时使用都是正常的呢?...找一找这个临时文件的创建时机: 在unixGetTempname函数里,人为地造一个crash,通过crash堆栈配合addr2line来查看调用栈: 12-19 21:00:45.633 13680-...,在其中调用pager_write_pagelist时触发pPager->fd == 0的条件(因为page在前面没有分配到空间), 于是触发pagerOpenTemp,往下执行调用unixGetTempname
参数: Context; 数据库名; Cursor:允许我们在查询数据的时候返回一个自定义的Cursor,一般传null; 当前数据库的版本号:可用于对数据库进行升级操作。...构造出SQLite实例后,在调用它的getReadableDatabase()或getWritableDatabase()方法就能创建数据库了,数据库文件会存放在/data/data/<package..., oldVersion: Int, newVersion: Int) { TODO("Not yet implemented") } } 在onCreate()方法中调用SQLiteDatabase...升级数据库的最佳写法 之前升级数据库是简单的在onUpgrade()方法中删除当前所有表然后重新执行一遍onCreate()。 这样做的弊端为如果你的应用升级一次数据库用户之前的数据就会被清空。...当指定的数据库版本号大于当前数据库版本号的时候,就会进入onUpgrade()方法中执行更新操作,这里需要为每一个版本号赋予其所对应的数据库变动,然后再onUpgrade()方法中对当前数据库的版本号就行判断
SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本。...它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需要占用几百kB的存储空间,这也是Android移动设备采用SQLite数据库的重要原因之一。 ...比起Mysql、PostgreSQL 这两款开源数据库管理系统来讲,SQLite的处理速度更快。 SQLite 没有服务器进程,它通过文件保存数据,该文件是跨平台的,可以放在其他平台中使用。...SQLite 数据库创建 在Android系统中,创建SQLite数据库是非常简单的。...Android系统推荐使用 SQLiteOpenHelper 的子类创建数据库,因此需要创建一个继承自SQLiteOpenHelper,并重写该类中的onCreate()方法和onUpgrade()方法即可
SQLite支持最大2TB的存储空间,在Android中SQLite是受手机系统存储空间(ROM)也就是机身内存大小限制的,不包括外置SD卡空间。...)方法,其中onUpgrade是为了数据库升级提供的。...当创建SQLiteOpenHelper实例时,如果已经存在旧数据库(即就数据库版本号存在)就会走onUpgrade方法而不会调用onCreate,这时可以添加表字段或添加新表等操作升级数据库。...,在onCreate()就不用调用onUpgrade(db, FIRST_DATABASE_VERSION, DATABASE_VERSION); } public synchronized...而apply只是原子提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率。 “原子提交”是SQLite这种支持事务的数据库的一个重要特性。
标题图 前言 学习Android相关知识,数据存储是其中的重点之一,如果不了解数据,那么让你跟一款没有数据的应用玩,你能玩多久呢?答案是这和没有手机几乎是差不多的。...我们聊QQ,聊微信,看新闻,刷朋友圈等都是看里面的数据,所以在Android中数据对我们是多么重要。...---- 本篇主要介绍Android中实现数据存储的三种方式: 文件存储 SharedPreference存储 SQLite数据库存储 下面给出三种方式的数据文件默认存储的位置: 数据存储方式 在DDMS...如图: 思维导图 ---- 接下来讲讲Android中SQLite数据库的增删改查的操作。...如果存在数据库就打开,没有就创建。 SQLiteOpenHelper类是一个SQLite帮助类,实现SQLite的数据操作,创建一个类去继承SQLiteOpenHelper,接下来代码示例一下。
因此,升级表的操作对于任何一个项目也是至关重要的,那么今天我们就一起来学习一下,在Android传统开发当中升级表的方式,以及使用LitePal来进行升级表操作的用法。...如果你还没有看过前一篇文章,建议先去参考一下 Android数据库高手秘籍(二)——创建表和LitePal的基本用法 。...对于这种情况我们就要用升级的方式来解决了,看到MySQLiteHelper构造方法中的第四个参数了吗,这个就是数据库版本号的标识,每当版本号增加的时候就会调用onUpgrade()方法,我们只需要在这里处理升级表的操作就行了...比如之前的数据库版本号是1,那么在onUpgrade()方法中就可以这样写: public class MySQLiteHelper extends SQLiteOpenHelper { ........也没有问题,我们在onUpgrade()方法中已经把升级逻辑都处理好了,当oldVersion等于2的时候,会执行alter语句来添加publishdate这一列。