关系型数据库的操作及管理
已经鸽了很久了,今天也准备了点新东西来进行发布,在搞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作为文件后缀。