andriod studio连接SQLite
SQLite
SQLite是一种嵌入式的数据库引擎,以文件的形式保存数据的,专门适用于资源有限的设备上进行适量的数据存储。
从本质上来看,SQLite的操作方式只是一种更为便捷的文件操作,当应用程序创建或打开一个SQLite数据库时,其实只是打开一个文件准备读写。
虽然SQLite内部只支持null(空)、integer(整型)、real(浮点数)、text(文本)和blob(二进制)这五种数据类型,但是varchar(n)、char(n)、decimal(p, s)、date等类型数据可以转换为上面五种数据类型中相应的类型进行储存。例如可以将图片转换为二进制进行储存。
SQLiteOpenHelper
SQLiteOpenHelper提供构造器,用于传递当前上下文对象以及SQLite数据库版本信息,在SQLiteOpenHelper的继承类的构造函数中会调用它,构造器如下:
SQLiteOpenHelper(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version)
上面的构造函数中,都是用于创建一个SQLite数据库,context为一个当前应用的上下文对象;name是数据库名称;factory是一个允许子类在查询时使用的游标,一般不用(传null即可);version是数据库版本号。
在SQLiteOpenHelper中,可以进行SQLite数据库的创建、维护、日志以及获取可读写的数据库对象,通过下面几个常用方法得到支持:
1)String getDatabaseName():获取数据库名。
2)SQLiteDatabase getReadableDatabase():创建或者打开一个可读的数据库对象。
3)SQLiteDatabase getWritableDatabase():创建或者打开一个可读/写的数据库对象。
4)abstract void onCreate(SQLiteDatabase db):当第一次调用SQLiteOpenHelper的时候执行,之后再次调用将不再执行,一般用于完成数据库初始化的工作。
5)void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion):当数据库版本号发生向上更新时被执行。
6)void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion):当数据库版本号发生向下更新时被执行。
SQLiteDatabase
当使用SQLiteOpenHelper的getReadableDatabase()或者getWritableDatabase()方法获取到SQLiteDatabase对象,就可以对这个数据库进行操作了。
CRUD
其中C代表添加(Create),R代表查询(Retrieve),U代表更新(Update),D代表删除(Delete)。
1、使用SQL语句执行CRUD操作
void execSQL():通过SQL语句执行一条非查询语句。(增删改)
Cursor rawQuery():通过SQL语句执行一条查询语句。(查)
2、使用SQLiteDatabase所提供的方法实现CRUD操作
1)插入一条数据
long insert(String table, String nullColumnHack, ContentValues values)
table是表名;nullColumnHack用于在未指定添加数据的情况下给某些可为空的列自动赋值null,一般用不到这个功能,直接传入null即可;values是一个 ContentValues对象,它提供了一系列的put()方法重载,用于向ContentValues中添加数据,只需要将表中的每个列名以及相应的待添加数据传入即可。
2)根据条件,删除数据。
int delete(String table, String whereCaluse, String[] whereArgs)
table是表名;whereCaluse和whereArgs用于去约束删除某一行或某几行的数据,不指定的话默认就是删除所有行。
3)根据条件,更新数据。
int updata(String table,ContentValues values,String whereCaluse,String[] whereArgs)
table是表名;values是ContentValues对象要把更新数据在这里组装进去;whereCaluse和whereArgs用于去约束更新某一行或某几行中的数据,不指定的话默认就是更新所有行。
4)根据条件,查询数据。
Cursor query(String table, String[] columns, String selection, String[] selectionArgs,
String groupBy, String having, String orderBy)
table是表名;columns用于指定去查询哪几列,如果不指定则默认查询所有列;selection和selectionArgs用于去约束查询某一行或某几行的数据,不指定则默认是查询所有行的数据;groupBy用于指定需要去group by的列,不指定则表示不对查询结果进行group by操作;having用于对group by之后的数据进行进一步的过滤,不指定则表示不进行过滤;orderBy用于指定查询结果的排序方式,不指定则表示使用默认的排序方式。
作者:李俊的博客
链接:https://www.jianshu.com/p/8955b0e73186
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
andriod studio连接SQLite的更多相关文章
- Android Studio连接SQLite数据库与SQLite Studio实时同步的实现
最近学习用到了android开发连接数据库这一块,发现连接成功后,都要先访问安卓项目的数据库路径data/data/项目/databases,然后把对应的db文件拷出来,再在SQLite的可视化工具中 ...
- [Andriod] - Andriod Studio + 逍遥模拟器
Andriod Studio自身自带的模拟器实在太卡,用Genymotion模拟器又要安装VirtualBox,然后一堆的设置,结果还是卡B. 网上下了个逍遥模拟器,这模拟器是游戏专用的,目前正式版的 ...
- VS2010连接SQLite数据库
Visual studio 2010及以上版本,连接SQLite数据库 1.在Sqlite开发站点下载SQLite的.exe安装包 Ctrl+F搜索这条语句:This is the only setu ...
- 一步一步教你用c# entity framework6 连接 sqlite 实现增删改查
使用entity framework6 连接 SQLite 数据库 前言 很多小型应用程序中,都要使用数据库,而现在比较流行的本地数据库非SQLite莫属. 第一步:前期准备 开发环境:vs2015 ...
- VS2010上连接SQLite数据库
VS2010连接SQLite数据库 Visual studio 2010及以上版本,连接SQLite数据库 1.在Sqlite开发站点下载SQLite的.exe安装包 Ctrl+F搜索这条语句:Thi ...
- Andriod Studio安装及使用
创建Andriod项目 1.下载最新版的Andriod studio 2.在 Welcome to Android Studio 窗口中,点击 Start a new Android Studio p ...
- Andriod Studio adb.exe,start-server' failed -- run manually if necessary 解决
首先查看了我的任务管理器,共有三个adb的程序在运行: 错误提示的是 Andriod Studio 中的adb.exe启动失败,于是,去关掉另外两个adb.exe,两分钟左右后,又出现了三个adb. ...
- Java 连接SQLite数据库
下载jar包: http://www.sqlite.com.cn/Upfiles/source/sqlitejdbc-v033-nested.tgz public class TestSQLite { ...
- FIREDAC连接SQLITE乱码的解决
在好多群里面都碰到问“FIREDAC连接SQLITE乱码的”的问题的同仁,遂将解决方法贴出来: 如上图所示设置 stringFormat为unicode即可
随机推荐
- java第三次面试总结
这次面试是二面,由于自己的经验不足,面试的结果不是很令人满意,所以与这家公司失之交臂,在这里记录一下经历,吸取教训. 之前的一面是笔试+面试,面试是主管,今天的面试是总监.在前台招待我的时候,还跟我说 ...
- Mycat分布式数据库架构解决方案--rule.xml详解
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 该文件 ...
- vue基础:组件的创建方式和组件的data值
vue组件是什么: 组件是可复用的 Vue 实例,组件可以进行任意次数的复用 vue组件创建方式有3种: //第一种创建组件的方式// Vue.extend创建全局组件var com1 = Vue.e ...
- 爬虫之PyQuery的base了解
爬虫之PyQuery的base了解 pyquery库是jQuery的Python实现,能够以jQuery的语法来操作解析 HTML 文档,易用性和解析速度都很好,和它差不多的还有BeautifulSo ...
- app后端设计(php)
来源:http://blog.csdn.net/column/details/mobilebackend.html?page=1 做了3年app相关的系统架构,api设计,先后在3个创业公司中工作,经 ...
- Linux下系统调用的组成与实现
主要包括三个部分:(1)唯一的系统调用号(System Call Number):(2)系统调用表中相应的表项,即具体的函数地址:(3)对应的具体函数,即系统调用函数体. 以getpid()POSIX ...
- html()方法与append()方法
注意加#!!!!!! $("#valuess").html("<input type='text' name='name' value= " + valu ...
- Flask-SQLAlchemy操作指南
Flask-SQLAlchemy官方文档 from flask_sqlalchemy import SQLAlchemy app = Flask(__name__)app.config['SQLALC ...
- python代码组织及模块使用
python代码组织 python和其他编程语言一样,采用包管理代码,一个包中可包含许多模块. 使用模块最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其 ...
- 微信小程序(小游戏)后台开发
小程序开放接口功能,目的是方便小程序接入第三方服务器,比如,商城类小程序,小游戏,需要保存订单数据,玩家信息等.那就需要服务器和数据库, 开发者对于各方关系必须要理清,那就是小程序,用户,开发者服务器 ...