@yoronsoft/rn-realm

1.0.0 • Public • Published

安装

简单封装移动端数据库 realm
npm install @gaozh1024/rn-realm
or
yarn add @gaozh1024/rn-realm

npm i realm@12.3.1

npm i react-native-get-random-values@1.10.0

使用方法

import {database} from '@gaozh1024/rn-realm'

//  获取 UUID
database.getUUID()
//  => string

/**
 * 数据库操作,可进行增删改操作
 * @param schemaList        {DataBaseSchemaData[]}  schema 列表
 * @param params            {DataBaseParams}        当前数据库配置参数
 * @param hasTransaction    {boolean}               是否开启事务(可选参数,默认开启)
 * @return  IDataBaseOpen
 */
database.open(schemaList, params, hasTransaction);

/**
 * 数据库操作,仅可查询
 * @param schemaList        {DataBaseSchemaData[]}  schema 列表
 * @param params            {DataBaseParams}        当前数据库配置参数
 * @param hasTransaction    {boolean}               是否开启事务(默认开启)
 * @return  IDataBaseReadonly
 */
database.readonly(schemaList, params, hasTransaction);

/**
 * 创建表
 * @param   {DataBaseSchemaData}    表字段
 * @return  DataBaseSchemaData
 */
database.createSchema({
    name: '表名',
    //  字段
    properties: {
        name: {type: database.fieldType.string, default: '张三'}
    },
    //  主键
    primaryKey: '_id'
})

//  数据类型
database.fieldType
/**
 * =>
 *  bool
 *  int
 *  float
 *  double
 *  string
 *  decimal128
 *  objectId
 *  data
 *  date
 *  list
 *  linkingObjects
 *  dictionary
 *  set
 *  mixed
 *  uuid
 */

//  表 class
database.Schema(realm, hasTransaction)

示例

//  创建表
const AppInfoSchema = database.createSchema({
    name: 'AppInfo',
    properties: {
        _id: {type: database.fieldType.string, default: '1'},
        version: {type: database.fieldType.string, default: '1.0'},
        build: {type: database.fieldType.string, default: '1'},
    }
});

//  初始化版本信息
const dbParams: DataBaseParams = {
    //  数据库版本,每次更改都需要增加
    schemaVersion: 1
}

//  打开数据库
const db = database.open([AppInfoSchema], dbParams);
//  修改数据
db.schema.add(AppInfoSchema, {_id: '1', version: '1.0', build: '1'});
//  修改数据
db.schema.edit(AppInfoSchema, '1', {version: '2.0', build: '2'});
//  查看数据
db.schema.get(AppInfoSchema, '1');
//  => {_id:'1',version:'2.0',build:'2'}

//  关闭数据库
db.backClose();

/**
 * 注意:
 *  数据库执行查询操作后,需要将数据脱钩,赋值与另外一个字段输出出来,否则数据展示 undefined
 */

Package Sidebar

Install

npm i @yoronsoft/rn-realm

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

68.4 kB

Total Files

21

Last publish

Collaborators

  • gaozh