sky-mxc 总结 转载注明出处:https://sky-mxc.github.io 对 sd卡上sqlite 数据库的操作 Android默认的数据库位置是在 data\data\packageName...\databases\目录下的; 有时候因为业务需要我们需要操作位于sd卡的数据库,就可以通过重写 Context类的方法来实现 重写 ContextWrapper 我们在创建SqliteOpenHelper...* 重写此方法 返回我们位于sd卡的数据库文件 * @param name * @return */ @Override public File...getDatabasePath(String name) { //位于 sd卡的数据库 初始化时已经创建好了 File file = new File(Environment.getExternalStorageDirectory...().getPath()+"/dbDemo",name); return file; } /** * Android 4.0后会调用此方法 还有一个2.3以前的方法就重写了
对 sd卡上sqlite 数据库的操作 Android默认的数据库位置是在 data\data\packageName\databases\目录下的; 有时候因为业务需要我们需要操作位于sd卡的数据库,...就可以通过重写 Context类的方法来实现 重写 ContextWrapper 我们在创建SqliteOpenHelper实例的时候需要传入一个Context 实例,就是通过他来实现的 public...* 重写此方法 返回我们位于sd卡的数据库文件 * @param name * @return */ @Override public File...getDatabasePath(String name) { //位于 sd卡的数据库 初始化时已经创建好了 File file = new File(Environment.getExternalStorageDirectory...().getPath()+"/dbDemo",name); return file; } /** * Android 4.0后会调用此方法 还有一个2.3以前的方法就重写了
这两个方法都可以创建或打开一个现有的数据库,并返回一个可对数据库进行读写操作的对象。...参数: Context; 数据库名; Cursor:允许我们在查询数据的时候返回一个自定义的Cursor,一般传null; 当前数据库的版本号:可用于对数据库进行升级操作。...构造出SQLite实例后,在调用它的getReadableDatabase()或getWritableDatabase()方法就能创建数据库了,数据库文件会存放在/data/data/<package...升级数据库的最佳写法 之前升级数据库是简单的在onUpgrade()方法中删除当前所有表然后重新执行一遍onCreate()。 这样做的弊端为如果你的应用升级一次数据库用户之前的数据就会被清空。...当指定的数据库版本号大于当前数据库版本号的时候,就会进入onUpgrade()方法中执行更新操作,这里需要为每一个版本号赋予其所对应的数据库变动,然后再onUpgrade()方法中对当前数据库的版本号就行判断
Android网络与数据存储 第二章学习 ---- SQlite数据库#### 概要: SQLite看名字就知道是个数据库,Android专门为移动端内置了此种轻量级工具,并且为了方便在Java语言中进行数据库操作...,编写了SQLiteOpenHelper类来方便在Android中操作数据库” ---- 1.SQLiteOpenHelper类的使用##### public abstract class SQLiteOpenHelper...; *factory 允许我们在查询数据库的时候返回一个自定义的Cursor,一般不需要; * version 表示创建的数据库的版本; */ super(context...比如说,我现在要查询Book表中的name和price列中的值,而且我要求查到的书名为《Android programming: the big nerd ranch guide》,不需要排序 ,则代码就如下编写...熟悉了这种对数据库进行操作的方法后,即使不懂SQL语言也不怕了。 5.数据库的“事务” 什么是事务呢?
SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本。...它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需要占用几百kB的存储空间,这也是Android移动设备采用SQLite数据库的重要原因之一。 ...但实际上SQLite也接收varchar(n)、 char(n)、decimal(p,s)等数据类型,只不过在运算或保存时会转换成对应的5种数据类型。...因此,可以将各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型。 SQLite 数据库创建 在Android系统中,创建SQLite数据库是非常简单的。...数据库使用 前面介绍了SQLite 数据库及如何创建数据库,接下来将针对SQLite数据库的增、删、改、查操作进行详细讲解。
打开数据库 File file=new File(getContext().getExternalFilesDir(null),"learn.db"); SQLiteDatabase database...=SQLiteDatabase.openOrCreateDatabase(file,null); 遍历数据库中的所有表名 Cursor tables=database.rawQuery("select...name from sqlite_master where type='table' order by name",null); names=new String[tables.getCount()-1...]; int i=0; while(tables.moveToNext()){ //第一个不需要,去掉,将查询的信息保存在数组里 if (i!...name) VALUES (\"%s\")",data.getString(data.getColumnIndex("firstColumnName")))); 此例子是插入文本数据 向一个表中插入另一个表的数据
程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。...那么就来看一下在Android程序中怎么去操作SQLite数据库来实现一些需求的吧。...,Android把 * SQLite的插入语句封装了起来, * 通过 ContentValues 类的对象来保存数据库中的数据, * 于HashMap...显示文件中的子文件目录,接下来我们就可以对数据库文件进行操作了: 输入 sqlite3 数据库名称, 就可以对数据库进行操作了: 输入 .table 来查看当前数据库文件中的表格目录, 结果如下...这里提一下SQLite数据库操作的时候主要用到的数据类型: 整形:Integer、字符数组:varchar(10)、浮点数:real、字符串文本:text。
sqlite中是不支持删除列操作的,所以网上 alter table [table_name] drop column [col_name] 这个语句在sqlite中是无效的(这不是MySQL),而替代的方法可以如下...> 当输入数据然后点击添加的时候数据库会被创建(如果数据库还没被创建),数据会添加成功 我们可以把数据库导出到SQLite Expert去查看表内容,也可以直接在控制台查看一个大概,查看数据库和表有没有被创建...这个目录中,mydb.db是我们创建的 另一个是mydb.db-journal,这是为了让数据库能够支持事务而产生的临时日志文件,通常情况下这个文件的大小是0字节 接下来输入sqlite3 mydb.db...打开mydb.db数据库 输入.table命令查看数据库中有哪些表,这个android_metadata是每个数据库中都会自动生成的,不用管。...SQLite数据库的事务介绍: MainActivity.java import android.content.ContentValues; import android.database.Cursor
2016-03-16 Android数据库支持 本文节选并翻译《Enterprise Android - Programing Android Database Applications for the...Java中执行SQL:SQLiteDatabase类 为了在java代码中针对SQLite数据库执行一些SQL查询等操作,Android 框架提供了SQLiteDatabase类。...Android SQLite API还提供了一系列的API来对应不同的SQL语法。包括insert、update、delete和query等,相应地,还有一些等价的简化方法和数据库管理方法。.../databases/test.db' 09-02 15:27:10.286: E/SQLiteDatabase(16433): android.database.sqlite....(SQLiteDatabase.java:1943) 09-02 15:27:10.286: E/SQLiteDatabase(16433): at android.database.sqlite
在android系统中使用的是sqlite数据库,前面的简易登录系统已经讲述了数据库的应用。本例的重点是实现数据库与listview的绑定。...demo的数据是将个人的信息绑定到listview中,并存在sqlite。...5.personinfo.xml 本例的person信息是手动添加到数据库的,并不是在代码中自己生成的数据。 1 <?xml version="1.0" encoding="utf-8"?...8.addperson和deleteperson 添加和删除个人信息都与sqlite数据库相关。...9.Mybaseadapter mybaseadapter是listview的适配器,继承与baseadapter。
SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称...name FROM sqlite_master where type='table' order by name; 通过sqlite3 test.db命令进入sqlite数据库的shell 操作: 1...,导出数据库某个表: # 先执行 .output table_name.sql # 在执行 .dump table_name 如果是导出全部表: 直接 .dump 2,导入数据表: .read table_name.sql...: cmd = "sqlite3 db.sqlite3 '.read table_name.sql' " os.system(cmd) .help 执行“sqlite3.exe”,我们可能用到下面几个命令...: sqlite> .help .dump ?
SQLite是一个嵌入式的数据库引擎,专门适用于资源有限的设备(如手机)上适量数据存取。它的特点是:轻量级、独立性、隔离性、跨平台、多语言接口、安全性。...一.创建数据库和表 ---- Android提供了一个管理数据库的工具类SQLiteOpenHelper,用于管理数据库的创建和版本更新,创建SQLiteOpenHelper的子类,并实现它的onCreate...getWriteableDatabase()方法以写的方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,如果继续写的话,会出错。...二.增、删、改、查 ---- SQLite数据库的增删改查有两种方法: 如上面创建数据表那样在db.execSQL()方法中传入SQL语句,对数据库进行增删改查。...利用Android封装好的insert、update、delete或query语句来操作数据库。
h2dhArchive Downloads 1 h2数据库的下载地址 2....H2软件包目录结构 h2 |—bin | |—h2-1.1.116.jar //H2数据库的jar包(驱动也在里面) | |—h2.bat //Windows控制台启动脚本... | |—h2.sh //Linux控制台启动脚本 | |—h2w.bat //Windows控制台启动脚本(不带黑屏窗口) |—docs //H2数据库的帮助文档(内有H2...数据库的使用手册) |—service //通过wrapper包装成服务。 ...|—src //H2数据库的源代码 |—build.bat //windows构建脚本 |—build.sh //linux构建脚本 3. windows下启动软件 我们可以进入到h2的bin
我们知道Android中有四种数据存储方式: SharedPreference存储 content provider SQLite数据库存储 文件存储 今天我们主要说 本地数据库sqlite这种方式,实现读取一个本地数据库...db文件的功能。...需要注意的有几点: 1)拷贝数据库涉及到读写 ,所以权限这块需要注意,如果是22以上的需要申请权限,否则会报错。...本地 操作数据库逻辑(查,删,改) package com.example.testdemo.util; import android.content.Context; import android.database.Cursor...; import android.database.sqlite.SQLiteDatabase; import android.os.Environment; import com.example.testdemo.bean.User
原型: long android.database.sqlite.SQLiteDatabase.insert(String table, String nullColumnHack, ContentValues...values) 参数介绍: table: 要插入数据的表的名称 nullColumnHack:当values参数为空或者里面没有内容的时候,我们insert是会失败的(底层数据库不允许插入一个空行...),为了防止这种情况,我们要在这里指定一个列名,到时候如果发现将要插入的行为空行时,就会将你指定的这个列名的值设为null,然后再向数据库中插入。...当我们不设定一列的时候,不都是数据库给设为默认值吗?很多字段设置默认值也是null,这里显示的设置也是null,有什么区别吗,怎么会显示设置了之后就允许插入了呢?...我们可以想象一下,如果我们不添加nullColumnHack的话,那么我们的sql语句最终的结果将会类似insert into tableName()values();这显然是不允许的。
前言 SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。...就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。...一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。 SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。...SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。...综合来看,即轻量 兼容 多端 无需配置 无外部依赖 拥有简单易懂的API 安全 在Android中如何使用 Android 提供的 SQLiteOpenHelper.java 是一个抽象类。
SQLite 前言 之前介绍过Android中保存数据的两种方式:SharedPreferences和File,这篇介绍另一种存储数据的方式——数据库。...数据库:简单来说可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 想必大家对数据库都不陌生,想当年上数据库课的时候,被那些命令整得不要不要的。...如果数据量较小的时候可用SharedPreferences或File来保存,当数据量较大且关系复杂的时候就要用到Android中的数据库SQLite——轻量级数据库系统。...不管怎么说,这次的目的达到了,增删查改都ok了。 小结 使用SQLite就是在本地建了一个数据库,使用数据库中的表来保存数据。...; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper
大家好,又见面了,我是你们的朋友全栈君。 h2数据库进入shell java -cp ...../lib/h2-1.4.200.jar org.h2.tools.Shell Welcome to H2 Shell 1.4.200 (2019-10-14) Exit with Ctrl+C [Enter...] jdbc:h2:~/test URL jdbc:h2:/usr/local/db/xxx-xxx [Enter] org.h2.Driver Driver [Enter]
前言 数据库的性能优化行业里面普遍偏少,今天这篇希望给大家带来点帮助 SQLite是个典型的嵌入式DBMS,它有很多优点,它是轻量级的,在编译之后很小,其中一个原因就是在查询优化方面比较简单 我们在使用...SQLite进行数据存储查询的时候,要进行查询优化,这里就会用到索引,C端的数据量大部分情况下面虽然不是很大,但良好的索引建立习惯往往会带来不错的查询性能提升,同时在未知的将来经得住更大数据的考验,那如何优化数据库查询呢...理论上这样是可行的,但这里有个重要问题就是数据冗余太严重了,导致索引和原始数据一样大,在海量数据存储的数据库里面磁盘消耗是个问题,所以如何选择可能要做个平衡。...对于and条件来说,索引里面字段的顺序换一下也是没有关系的,数据库会自动优化选择,比如: sqlite .schem CREATE INDEX a_i22 on table2 (b,a); sqlite...常规的查询语句大部分是and,or,order的组合使用,只需要掌握上面说的原则,一定能写出高性能的数据库查询语句来。
查询数据在SQLite中,我们可以使用SQL语句查询表格中的数据。...以下是一个从customers表格中查询所有数据的示例:import sqlite3# Create a connection to the databaseconn = sqlite3.connect...最后,我们使用一个循环遍历所有行,并打印它们的值。更新数据在SQLite中,我们可以使用SQL语句更新表格中的数据。...以下是一个将customers表格中第一行数据的email列更新为新值的示例:import sqlite3# Create a connection to the databaseconn = sqlite3...我们使用SET关键字来指定要更新的列和新值,并使用WHERE关键字指定要更新的行。删除数据在SQLite中,我们可以使用SQL语句删除表格中的数据。
领取专属 10元无门槛券
手把手带您无忧上云