# rn-realm **Repository Path**: gaozh1215/rn-realm ## Basic Information - **Project Name**: rn-realm - **Description**: react native realm 轻量级数据库简单封装 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-09-15 - **Last Updated**: 2024-08-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: realmjs, realm-js ## README ### 安装 ``` 简单封装移动端数据库 realm npm install @yoronsoft/rn-realm or yarn add @yoronsoft/rn-realm npm i realm@12.1.0 npm i react-native-get-random-values@1.10.0 // 放到App.tsx的最上方 import "react-native-get-random-values"; ``` ### 使用方法 ```typescript import {database} from '@yoronsoft/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) ``` ### 示例 ```typescript // 创建表 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 */ ```