【鸿蒙】关系型数据库的自定义创建
f
·
前言
前面的文章只是创建了其余值为默认的数据库,我们只是给了个名字,这篇就介绍如何自定义创建数据库
1. 使用的API
| 接口名 | 接口名 | 描述 |
|---|---|---|
| StoreConfig.Builder | public StoreConfig builder() | 对数据库进行配置,包括设置数据库名、存储模式、日志模式、同步模式,是否为只读,及数据库加密。 |
如果不用默认值,则使用builder内部类,
2.方法介绍
可以看到有很多的方法
- setName() :设置数据库的名字
- setSyncMode() :同步模式
可以看到是enum,第一个值就是关闭的意思,第二个就是正常同步,第四个就是完全同步,第五个是额外同步。这些值呢只有多设备才有意义,对于单设备就没必要了,所以设为null
- setJournalMode() :日志模式

DELETE:默认的日志模式,一般在事务开始时创建回滚日志,事务结束时删除回滚日志
PERSIST:事务结束时不删除回滚日志,而是在日志文件头部覆写可以达到删除文件的效果,却减少了反复创建删除回滚日志的磁盘开始
MEMORY:将回滚日志储存在内存而不是磁盘中,但因为在磁盘中没有用于恢复的文件
OFF:禁用sqllite原子提交和回滚功能
WAL:预写日志,当数据库连接首次打开时,wal文件就会被创建
当最后一次数据库连接被正常关闭时,wal文件就会被删除
如果最后一次数据库连接没有正常关闭,wal文件会被保存下来,直到下一次打开数据库时才自动删除,shm共享内存文件,用于提供一块共享内存给多个进程在wal模式中访问相同的数据库
-
setStorageMode():存储模式

就两种,内存模式,磁盘模式,一般放在磁盘里面,断电也不怕数据消失 -
setReadOnly() :读写模式
一般我们肯定是要可读写的,设为false -
setDatabaseFileType() :数据库文件类型三种状态

NORMAL:默认值,正常
BACKUP:备份
CORRUPT:损坏 -
setEncryptKey():加密模式
3.效果
StoreConfig.Builder builder = new StoreConfig.Builder();
String keystr = "123456";
builder.setName("stan.db")
.setSyncMode(null)
.setJournalMode(StoreConfig.JournalMode.MODE_WAL)
.setStorageMode(StoreConfig.StorageMode.MODE_DISK)
.setReadOnly(false)
.setDatabaseFileType(DatabaseFileType.NORMAL)
//加密
.setEncryptKey(keystr.getBytes());
StoreConfig config = builder.build();
运行结果,同样得到数据结果,这些基于上一篇文章
还是很简单,还需要跟深一步学习。
更多推荐

所有评论(0)