安卓增删改查用sql语句号码_详解Android中一些SQLite的增删改查操作
在Android开发中经常要涉及到对数据的操作。Android本身提供了四种数据存储方式。包括:SharePreference,SQLite,Content Provider,File。
在Android,数据都是么私有的,要实现数据共享,正确方式是使用Content Provider。
SQLite: SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式。Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API。
SharedPreference: 除SQLite数据库外,另一种常用的数据存储方式,其本质就是一个xml文件,常用于存储较简单的参数设置。
File:即常说的文件(I/O)存储方法,常用语存储大数量的数据,但是缺点是更新数据将是一件困难的事情。
ContentProvider:Android系统中能实现所有应用程序共享的一种数据存储方式,由于数据通常在各应用间的是互相私密的,所以此存储方式较少使用,但是其又是必不可少的一种存储方式。例如音频,视频,图片和通讯录,一般都可以采用此种方式进行存储。每个Content Provider都会对外提供一个公共的URI(包装成Uri对象),如果应用程序有数据需要共享时,就需要使用Content Provider为这些数据定义一个URI,然后其他的应用程序就通过Content Provider传入这个URI来对数据进行操作。
本文主要是讲一些SQLite的操作并附上代码。
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是:
NULL: 空值
INTEGER: 整数
REAL: 浮点数
TEXT: 字符串
BLOB: 大数据
在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以用INTEGER的0和1代替true和false,而DATE类型则可以拥有特定格式的TEXT、REAL和INTEGER的值来代替显示,为了能方便的操作DATE类型,SQLite提供了一组函数,详见:http://www.sqlite.org/lang_datefunc.html,这样简单的数据类型设计更加符合嵌入式设备的要求。
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
/**
* 对表的增删改查的操作。这里的表里只有uid一列作为举例。
*/
public class DemoDBUtil {
//要操作的表名
public static final String DEMO_DB_NAME = "demo_db_name";
//SQLiteDatabase对象
private SQLiteDatabase sqLiteDatabase;
/**
* 带参构造方法,初始化SQLiteDatabase。
* @param sqLiteDatabase SQLiteDatabase实例
*/
public DemoDBUtil(SQLiteDatabase sqLiteDatabase){
this.sqLiteDatabase = sqLiteDatabase;
}
/**
* 增加数据。
* @param uid 要新增的uid
*/
public void add(String uid){
ContentValues values = new ContentValues();
values.put("uid", uid);
sqLiteDatabase.insert(DEMO_DB_NAME, null, values);
}
/**
* 删除表里所有数据。
*/
public void delete(){
sqLiteDatabase.delete(DEMO_DB_NAME, null, null);
}
/**
* 删除表里与uid对应的数据。
* @param uid 某个uid
*/
public void delete(String uid){
sqLiteDatabase.delete(DEMO_DB_NAME, "uid = ? ", new String[]{uid});
}
/**
* 更新表,将表所有uid替换为newUid。
*/
public void update(){
ContentValues values = new ContentValues();
values.put("uid", "newUid");
sqLiteDatabase.update(DEMO_DB_NAME, values, null, null);
}
/**
* 将表里对应的uid替换为newUid。
* @param uid 表里的某个uid
*/
public void update(String uid){
ContentValues values = new ContentValues();
values.put("uid", "newUid");
sqLiteDatabase.update(DEMO_DB_NAME, values, "uid = ? ", new String[]{uid});
}
/**
* 查询表里所有数据,取得uid对应的值。
*/
public void query(){
Cursor cursor = sqLiteDatabase.query(DEMO_DB_NAME, null, null, null, null, null, null);
while (cursor.moveToNext()) {
String uid = cursor.getString(cursor.getColumnIndex("uid"));
}
if (null != cursor) {
cursor.close();
}
}
/**
* 取得对应uid的值。
* @param uid 表里的某个uid
*/
public void query(String uid){
Cursor cursor = sqLiteDatabase.query(DEMO_DB_NAME, null, "uid = ? ", new String[]{uid}, null, null, null);
while (cursor.moveToNext()) {
String queryUid = cursor.getString(cursor.getColumnIndex("uid"));
}
if (null != cursor) {
cursor.close();
}
}
/**
* 取得最后一条记录。
*/
public void queryLastRecord(){
String lastTimeSql = "select * from demo_db_name order by id desc LIMIT 1";
Cursor cursor = sqLiteDatabase.rawQuery(lastTimeSql, null);
while (cursor.moveToNext()) {
String queryUid = cursor.getString(cursor.getColumnIndex("uid"));
}
if (null != cursor) {
cursor.close();
}
}
}
上文主要是针对表的一个简单的增删改查的操作,可以根据实际情况修改来满足项目的需要。
以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。
安卓增删改查用sql语句号码_详解Android中一些SQLite的增删改查操作相关推荐
- [转载] python中for语句用法_详解Python中for循环的使用_python
参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...
- python中for语句用法_详解Python中for循环的使用_python
这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...
- oracle 数据库循环查询语句怎么写,sql循环查询(sql语句循环查询详解)
sql循环查询(sql语句循环查询详解) 2020-07-24 11:15:51 共10个回答 select*fromawheret_idin('3','4');select*fromawheret_ ...
- python中break怎么用_详解Python中break语句的用法
详解Python中break语句的用法 在Python中的break语句终止当前循环,继续执行下一个语句,就像C语言中的break一样. break最常见的用途是当一些外部条件被触发,需要从一个循环中 ...
- SQL语句大全(详解)
SQL 前言 1 DDL 1.1 显示所包含的数据库 1.2 创建数据库 1.3 删除数据库 1.4 使用数据库 1.4.1 创建表 1.4.2 查看表的结构 1.4.3 查看当前数据库下的所有表 1 ...
- SQL语句大全及其详解
转自:https://www.cnblogs.com/1234abcd/p/5530314.html 一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说 ...
- MySQL探秘(二):SQL语句执行过程详解
只有更加全面地了解SQL语句执行的每个过程,才能更好的进行SQL的设计和优化. 当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的.一旦理解了这一点,很 ...
- mysql sql执行过程_MySQL探秘(二):SQL语句执行过程详解
昔日庖丁解牛,未见全牛,所赖者是其对牛内部骨架结构的了解,对于MySQL亦是如此,只有更加全面地了解SQL语句执行的每个过程,才能更好的进行SQL的设计和优化. 当希望MySQL能够以更高的性能运行查 ...
- statement执行insert into语句_【图文并茂】源码解析MyBatis ShardingJdbc SQL语句执行流程详解...
源码分析Mybatis系列目录: 1.源码分析Mybatis MapperProxy初始化[图文并茂] 2.源码分析Mybatis MappedStatement的创建流程 3.[图文并茂]Mybat ...
最新文章
- [转]C#多线程学习(四) 多线程的自动管理(线程池)
- 使用Laya引擎开发微信小游戏(下)
- PHP基础——语法篇
- Redis Cluster 高可用方案
- VTK:IO之ReadBMP
- HDUOJ 1062 TEXT REVERSE
- Fedora14下 wordPress 配置
- ONLYOFFICE界面汉化
- 域控服务器怎么开策略,组策略(域和域服务的搭建)
- 累死你的不是工作方式
- 解密MySQL 8.0 multi-valued indexes
- 哈工大视听觉信号处理——听觉部分报告——一种智能家居命令词识别系统的设计
- canvas scale()画布缩放的使用
- Java Swing图书管理系统桌面软件附源码
- 计算机组成原理常见题(四)
- 斜渐近线b为0为什么不存在_向量的奇技淫巧——斜坐标系
- 无法删除deepin-music-player和dee…
- 百合医疗IPO被终止:实控人黄凯之父黄维郭曾是佛山副市长
- Matlab 网格剖分程序DistMesh函数指南
- DRAM Organization
热门文章
- 终于圆了天文梦!马化腾称腾讯将发布探星计划 还提到了《王者荣耀》
- 马斯克再次进行新冠病毒检测 预计今天出结果
- 7nm芯片计划受挫 英特尔股价周五收盘暴跌16.24%
- 您的618快递正在燃烧?12吨快递货车高速上起火,网友:代入感极强!
- 阅文推“单本可选新合同”:授权分级、免费或付费自选
- 联合国总部宣布75周年活动用腾讯会议和企业微信举行
- 完全没法比!华为P40 Pro和iPhone 9宣传视频同曝光
- 5G手机是否值得买?北京5G基站将超1.4万个
- 京东拼购弹窗骗局5万人上当?回应:报道内容不实 保留追究权利
- 现男友代言!最强自拍手机荣耀20S正式发布:售价1899元起