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();
运行结果,同样得到数据结果,这些基于上一篇文章