HarmonyOS数据库之关系型数据库

本文详细介绍了HarmonyOS中关系型数据库的基础操作,包括配置、创建、加密、增删改查等。讲解了如何自定义数据库配置,如设置数据库名称、存储模式、日志模式等,并展示了如何使用StoreConfig.Builder进行配置。此外,还阐述了如何打开加密数据库,以及数据库的事务处理和观察者机制。最后,详细展示了如何进行数据的增、删、改、查操作,包括使用谓词和原生SQL语句的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

已经鸽了很久了,今天也准备了点新东西来进行发布,在搞Android的时候我们都知道有SQlite数据库以及AndroidX之后的ROOM数据库,一些轻量级的数据就可以存储在数据库里面;HarmonyOS同样提供了数据库的相关操作以及管理。

基础概述

关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库,创建在关系模型基础上的数据库,以行和列的形式存储数据。。HarmonyOS关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。HarmonyOS提供的关系型数据库功能更加完善,查询效率更高。

关系型数据库创建前的配置

在创建数据库前我们要配置数据库名称、存储模式、日志模式、同步模式、是否为只读模式以及对数据库进行加密;使用StoreConfig.Builder里面的builder()内部类进行配置;通过StoreConfig我们同样可以获取到一个关系型数据库的基本配置信息,主要以下七项:

  • config.getName() 获取数据库名称
  • config.isReadOnly() 设置数据库是否是只读模式 ,默认是false
  • config.getDatabaseFileType() 设置数据库的文件类型,默认是NORMAL
  • config.getJournalMode() 设置数据库的日志模式,默认是null
  • config.getStorageMode() 设置数据库的存储模式,默认是磁盘
  • config.getSyncMode() 设置数据库的同步模式,默认是null
  • config.getEncryptKey() 设置数据库密钥,默认是开放的,不加密的
StoreConfig config = StoreConfig.newDefaultConfig("DemoSql.db");//后缀db
System.out.println(config.getName());//数据库名称
System.out.println(config.isReadOnly());//是否只读  -- 默认false
System.out.println(config.getDatabaseFileType());//数据库 -- 默认 NORMAL
System.out.println(config.getJournalMode());//日志模式 null
System.out.println(config.getStorageMode());//存储模式 MODE_DISK 磁盘存储模式
System.out.println(config.getSyncMode());//同步模式 null
System.out.println(config.getEncryptKey());//密钥 null 默认是开放的,不加密的
自定义数据库配置

知道数据库基本设置的七种属性之后,那么就可以通过Builder的内部方法进行设置,先通过一段自定义数据库配置项创建数据库的代码来进行查看。

StoreConfig.Builder builder = new StoreConfig.Builder();
builder.setName("DemoSql.db");
builder.setReadOnly(false);
builder.setSyncMode(null);
builder.setJournalMode(StoreConfig.JournalMode.MODE_WAL);
builder.setStorageMode(StoreConfig.StorageMode.MODE_DISK);
builder.setDatabaseFileType(DatabaseFileType.NORMAL);
String key = "123456";
builder.setEncryptKey(key.getBytes());
StoreConfig config = builder.build();
RdbStore rdbStore = helper.getRdbStore(config, 1,callback , null);

使用以上配置项就可以对数据库进行之定义配置,这里解释以下每个数据项分别代表什么意思,以及要传入对应的参数是什么。

builder.setName("DemoSql.db");

设置数据库名称, .db作为文件后缀。


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值