首页 > 数据库 >sqlite数据库存储

sqlite数据库存储

时间:2024-06-04 22:59:34浏览次数:22  
标签:... sqlite String 数据库 db 存储 MyTable null

Android中的SQLite是一个轻量级的数据库管理系统,它内置在Android系统中,允许开发者在应用程序中存储和管理结构化数据。下面我将详细解释如何在Android中使用SQLite进行数据库操作,包括创建数据库、升级数据库、添加数据、更新数据、删除数据、查询数据和事务的使用。

1. 创建数据库

在Android中,你通常不需要直接创建SQLite数据库文件,因为当你首次使用SQLiteOpenHelper的子类时,如果数据库不存在,它会自动创建。SQLiteOpenHelper是一个辅助类,它管理数据库的创建和版本。

public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "MyDatabase.db";
private static final int DATABASE_VERSION = 1;
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 在这里创建表
String createTableQuery = "CREATE TABLE MyTable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)";
db.execSQL(createTableQuery);
}
// ... 其他方法 ...
}

2. 升级数据库

当你想更改数据库结构(例如添加新表或修改现有表)时,你需要增加DATABASE_VERSION的值,并在onUpgrade方法中编写升级逻辑。

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 在这里编写升级逻辑
// 例如,删除旧表并创建新表
db.execSQL("DROP TABLE IF EXISTS MyTable");
onCreate(db); // 调用onCreate来创建新表
}

3. 添加数据

使用ContentValues类将值放入表中。

SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "John Doe");
db.insert("MyTable", null, values); // 第一个参数是表名,第二个参数是可选的nullColumnHack,第三个参数是ContentValues对象
db.close();

4. 更新数据

使用update方法更新表中的行。

ContentValues values = new ContentValues();
values.put("name", "Jane Doe");
String whereClause = "id = ?";
String[] whereArgs = new String[]{"1"}; // 假设我们要更新id为1的行
db.update("MyTable", values, whereClause, whereArgs);

5. 删除数据

使用delete方法删除表中的行。

String whereClause = "id = ?";
String[] whereArgs = new String[]{"1"}; // 假设我们要删除id为1的行
db.delete("MyTable", whereClause, whereArgs);

6. 查询数据

使用query方法或更简单的rawQuery方法来查询数据。

Cursor cursor = db.query("MyTable", null, null, null, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
// 处理数据...
}
cursor.close();

或者使用rawQuery

Cursor cursor = db.rawQuery("SELECT * FROM MyTable", null);
// ... 同上处理数据 ...

7. 事务的使用

在SQLite中,事务用于确保一系列数据库操作要么全部成功,要么全部失败(回滚)。这对于保持数据的完整性非常有用。

db.beginTransaction(); // 开始事务
try {
// 在这里执行多个数据库操作...
db.setTransactionSuccessful(); // 如果所有操作都成功,标记事务为成功
} finally {
db.endTransaction(); // 结束事务,如果未调用setTransactionSuccessful(),则回滚事务
}

注意

  • 始终确保在操作完数据库后关闭它,以释放资源。
  • 在多线程环境中使用数据库时,请确保线程安全。可以使用SQLiteDatabase.enableWriteAheadLogging(true)来提高并发写入的性能,但请注意它可能会增加数据库文件的大小。

标签:...,sqlite,String,数据库,db,存储,MyTable,null
From: https://blog.csdn.net/VitorLiu/article/details/139455946

相关文章

  • 向量数据库chroma
    概述Chroma是向量数据库,存向量用的。拥有针对向量的查询能力,根据向量的距离远近查询,这一点和传统数据库不一样。安装与简单使用用pipinstallchromadb命令安装。为了创建数据库实例,先要创建一个client。importchromadbchroma_client=chromadb.Client()借助client......
  • 使用Python连接到MySQL数据库并执行查询
    在当今数字化时代,数据是企业和组织中至关重要的资产之一。数据库是存储和管理数据的核心工具之一,而MySQL则是其中一种流行的关系型数据库管理系统。如何使用Python编程语言连接到MySQL数据库,并执行查询以检索所需的数据。首先,需要安装pymysql库:pipinstallpymysql下......
  • 实验10 数据库索引创建与管理操作
    1、使用MySQL Navicat图形工具创建、管理索引在JXGL数据库中进行以下操作:创建索引。为students表的sname字段创建索引ix_sname。CREATEINDEXix_snameonstudents(sname)在students表的class和sdept字段上创建名为ix_cs的组合索引。CREATEINDEXix_csonstud......
  • OSS存储文件
    阿里云OSS官方文档:快速使用OSSSDK_对象存储(OSS)-阿里云帮助中心(aliyun.com)在Maven工程中使用OSSJavaSDK,只需在pom.xml中加入相应依赖即可。在<dependencies>中加入如下内容:优先使用最新版本的依赖项,此处以3.15.1版本为例。<dependency><groupId>com.aliyun.......
  • 在线考试|基于Springboot的在线考试管理系统设计与实现(源码+数据库+文档)
    在线考试管理系统目录目录基于Springboot的在线考试管理系统设计与实现一、前言二、系统设计三、系统功能设计 1、前台:2、后台管理员功能四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设布道师,......
  • 健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)
    健身管理小程序目录基于微信开发健身管理小程序设计与实现一、前言二、系统设计三、系统功能设计 小程序端:后台四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专......
  • 电影交流|基于SprinBoot+vue的电影交流平台小程序系统(源码+数据库+文档)
     电影交流平台目录目录基于SprinBoot+vue的电影交流平台小程序系统 一、前言 二、系统设计三、系统功能设计 1用户信息管理2电影信息管理3公告信息管理4论坛信息管理四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:......
  • 数据库知识点和一些命令以及使用步骤
     一、基本命令:(1)连接本地数据库服务:mysql-uroot-p(2)连接其它电脑上的数据库服务:mysql-hip地址-uroot-p(3)在连接数据库服务时直接选择库:mysql-D库名-uroot-p(4)退出数据库服务:exit或quit或\q二、使用步骤:1、链接数据库服务2、创建一个数据库—>选择库3、设......
  • MySQL的数据在磁盘上如何存储?
    存储引擎百度百科是这样定义存储引擎的:MySQL中的数据用各种不同的技术存储在文件(或者内存)中,这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎。简单来说就是不同的存储引擎,我们的数据存储的格式也会不一样。就好比图片有不同的格式,比如:.jpg,.png,.gif等等……......
  • 公安视频图像信息数据库及GA/T 1400视图库视频监控系统的使用场景
    随着科技的快速发展,大数据、人工智能等新技术不断融入各行各业,为各行各业带来了前所未有的变革。在公安领域,GA/T1400协议公安视频图像信息数据库的应用为视频监控场景提供了强有力的支持,极大地提升了公安工作的效率和准确性。一、公安视频图像信息数据库组成1、公安视频图像......