当前位置: 首页 > news >正文

网站引导页面设计辽宁省城乡和住房建设厅网站

网站引导页面设计,辽宁省城乡和住房建设厅网站,石家庄设计公司,好用的网站开发框架前面使用了首选项的存储方式#xff0c;因此将其他的两种存储方式#xff08;键值型数据库和关系型数据库#xff09;也学习一下#xff0c;简单记录一下#xff0c;并进行封装#xff0c;方便后续使用。 1、效果预览 2、使用条件 2.1 键值型数据库 键值型数据库实现数据… 前面使用了首选项的存储方式因此将其他的两种存储方式键值型数据库和关系型数据库也学习一下简单记录一下并进行封装方便后续使用。 1、效果预览 2、使用条件 2.1 键值型数据库 键值型数据库实现数据持久化widthdevice-width,initial-scale1.0http://test.openharmony.cn:7780/pages/v4.0/zh-cn/application-dev/database/data-persistence-by-kv-store.md/ 设备协同数据库针对每条记录Key的长度≤896 ByteValue的长度4 MB。 单版本数据库针对每条记录Key的长度≤1 KBValue的长度4 MB。 每个应用程序最多支持同时打开16个键值型分布式数据库。 键值型数据库事件回调方法中不允许进行阻塞操作例如修改UI组件。 2.2 关系型数据库 关系型数据库实现数据持久化widthdevice-width,initial-scale1.0http://test.openharmony.cn:7780/pages/v4.0/zh-cn/application-dev/database/data-persistence-by-rdb-store.md/ 系统默认日志方式是WALWrite Ahead Log模式系统默认落盘方式是FULL模式。 数据库中连接池的最大数量是4个用以管理用户的读操作。 为保证数据的准确性数据库同一时间只能支持一个写操作。 当应用被卸载完成后设备上的相关数据库文件及临时文件会被自动清除。 ArkTS侧支持的基本数据类型number、string、二进制类型数据、boolean。 为保证插入并读取数据成功建议一条数据不要超过2M。超出该大小插入成功读取失败。 3、核心API 3.1 键值型数据库 createKVManager创建一个KVManager对象实例 getKVStore指定Options和storeId创建并得到指定类型的KVStore数据库 put添加指定类型的键值对到数据库 get获取指定键的值 delete从数据库中删除指定键值的数据 3.2 关系型数据库 getRdbStore获得一个相关的RdbStore操作关系型数据库 executeSql执行包含指定参数但不返回值的SQL语句 deleteRdbStore删除数据库 insert插入一行数据 delete从数据库中删除数据 update更新数据库中的数据 query根据指定条件查询数据库中的数据 4、封装与调用 4.1 键值型数据库 4.1.1 封装 import distributedKVStore from ohos.data.distributedKVStore;const BUNDLE_NAME dbName_tengyulet context getContext(this) // 数据库对象 let kvManager: distributedKVStore.KVManager | undefined undefined; // KVStore数据库 let kvStore: distributedKVStore.SingleKVStore | undefined undefined;class DistributedUtil {constructor() {this.createKeyValueDB();}async getKvManager(bundleName?: string) {const kvStoreConfig: distributedKVStore.KVManagerConfig {context: context,bundleName: bundleName || BUNDLE_NAME};try {kvManager distributedKVStore.createKVManager(kvStoreConfig);}catch (err) {console.error(error:${err})}}// 创建并得到指定类型的KVStore数据库async createKeyValueDB(op?: distributedKVStore.Options) {if (kvManager undefined) {this.getKvManager();}try {const options: distributedKVStore.Options {// 当数据库文件不存在时是否创建数据库默认为truecreateIfMissing: true,// 设置数据库文件是否加密默认为false即不加密encrypt: false,// 设置数据库文件是否备份默认为true即备份backup: false,// 设置数据库文件是否自动同步。默认为false即手动同步autoSync: true,// kvStoreType不填时默认创建多设备协同数据库kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,// 多设备协同数据库kvStoreType: distributedKVStore.KVStoreType.DEVICE_COLLABORATION,securityLevel: distributedKVStore.SecurityLevel.S1};kvManager.getKVStoredistributedKVStore.SingleKVStore(storeId, op || options, (err, store: distributedKVStore.SingleKVStore) {if (err) {console.error(Failed to get KVStore: Code:${err.code},message:${err.message});return;}console.info(Succeeded in getting KVStore.);kvStore store;});} catch (e) {console.error(An unexpected error occurred. Code:${e.code},message:${e.message});}return kvStore;}// 删除指定键值的数据async deleteStoreData(key: string) {if (!kvStore) {return;}try {kvStore.delete(key, (err) {if (err ! undefined) {console.error(Failed to delete data. Code:${err.code},message:${err.message});return;}console.info(Succeeded in deleting data.);});} catch (e) {console.error(An unexpected error occurred. Code:${e.code},message:${e.message});}}// 向键值数据库中插入数据async putStoreData(key: string, value: any) {if (!key || !value) {return}if(!kvStore) {kvStore await this.createKeyValueDB();}try {kvStore.put(key, value, (err) {if (err ! undefined) {console.error(Failed to put data. Code:${err.code},message:${err.message});return;}console.info(Succeeded in putting data.);});} catch (e) {console.error(An unexpected error occurred. Code:${e.code},message:${e.message});}}// 获取指定键的值async getStoreData(key: string) {if (!key) {return}if(!kvStore) {kvStore await this.createKeyValueDB();}return new Promise((resolve, reject) {try {kvStore.get(key, (err, data) {if (err ! undefined) {console.error(Failed to get data. Code:${err.code},message:${err.message});reject(err)return;}resolve(data)});} catch (err) {reject(err)console.error(TAG, Failed to get value, Cause: ${err})}});} }export default new DistributedUtil();4.1.2 调用 import distributedUtil from ../../utils/distributedStrong// 向数据库新增数据 distributedUtil.putStoreData(test0011, JSON.stringify({name: 666,age: 32,date: 2023.06.26 }))// 获取数据库中的数据 distributedUtil.getStoreData(test0011).then(res {console.log(获取数据库中的数据, JSON.stringify(res)) }) 4.2 关系型数据库 关系型数据库运作机制  4.2.1 封装 import relationalStore from ohos.data.relationalStore;const DB_NAME RelationStoreDB.dblet context getContext(this) let store: relationalStore.RdbStore | undefined undefined;class RelationalUtil {async getRdbStoreConfig(dbName?: string, config?: relationalStore.StoreConfig) {const STORE_CONFIG: relationalStore.StoreConfig config || {// 数据库文件名name: dbName || DB_NAME,// 数据库安全级别securityLevel: relationalStore.SecurityLevel.S1,// 可选参数指定数据库是否加密默认不加密encrypt: false,};return STORE_CONFIG;}// 创建并得到指定类型的KVStore数据库async createDatabaseTable(sqlCreateTable: string) {const STORE_CONFIG await this.getRdbStoreConfig();relationalStore.getRdbStore(context, STORE_CONFIG, (err, rdbStore: relationalStore.RdbStore) {if (err) {console.error(Failed to get RdbStore. Code:${err.code}, message:${err.message});return;}console.info(Succeeded in getting RdbStore.);// 当数据库创建时数据库默认版本为0store rdbStore;store.executeSql(sqlCreateTable); // 创建数据表})}// 删除数据库async deleteDB(dbName: string DB_NAME) {relationalStore.deleteRdbStore(context, dbName, (err) {if (err) {console.error(Failed to delete RdbStore. Code:${err.code}, message:${err.message});return;}console.info(Succeeded in deleting RdbStore.);});}// 向数据库中插入数据async insertDatas(tableName: string, valueBucket) {if (store ! undefined) {(store as relationalStore.RdbStore).insert(tableName, valueBucket, (err, rowId: number) {if (err) {console.error(Failed to insert data. Code:${err.code}, message:${err.message});return;}console.info(Succeeded in inserting data. rowId:${rowId});})}}// 对数据进行修改async updateDatas(tableName: string, valueBucket, key, val) {let predicates new relationalStore.RdbPredicates(tableName); // 创建表tableName的predicatespredicates.equalTo(key, val); // 匹配表tableName中key为val的字段if (store ! undefined) {(store as relationalStore.RdbStore).update(valueBucket, predicates, (err, rowId: number) {if (err) {console.error(Failed to insert data. Code:${err.code}, message:${err.message});return;}console.info(Succeeded in inserting data. rowId:${rowId});})}}//根据谓词指定的查询条件查找数据async getDatas(tableName: string, atomArr: Arraystring, key: string, val: string | number) {let predicates new relationalStore.RdbPredicates(tableName);predicates.equalTo(key, val);if (store ! undefined) {return new Promise((resolve, reject) {(store as relationalStore.RdbStore).query(predicates, atomArr, (err, resultSet) {if (err) {console.error(Failed to query data. Code:${err.code}, message:${err.message});reject(err);return;}resolve(resultSet);console.info(ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount});})})}} }export default new RelationalUtil();4.2.2 调用 import relationalUtil from ../../utils/relationalStrong; import { ValuesBucket } from ohos.data.ValuesBucket;const DB_NAME testDB const TABLE_NAME table1 // 建库建表 const SQL_CREATE_TABLE CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB); relationalUtil.createDatabaseTable(SQL_CREATE_TABLE, DB_NAME);// 删除数据库 relationalUtil.deleteDB(DB_NAME);// 新增数据 const valBucket: ValuesBucket {NAME: 111,AGE: 222,SALARY: 333,CODES: 444, }; relationalUtil.insertDatas(TABLE_NAME, valBucket);// 修改数据 relationalUtil.updateDatas(TABLE_NAME, valBucket, NAME, Test001Val);// 获取数据 relationalUtil.getDatas(TABLE_NAME, [NAME, AGE, SALARY], NAME, Test001Val);
http://www.w-s-a.com/news/805981/

相关文章:

  • 如何提高你的网站的粘性建设银行流水网站
  • 微信h5在哪个网站做泰州专业网站制作公司
  • 现在.net做网站的多吗建设工程造价网
  • pc访问手机网站跳转违法网站开发人员
  • 网站前端做报名框wordpress 启动慢
  • 沈阳做网站客户多吗前端可以做网站吗
  • 网站设计规划书新媒体营销策略分析
  • dw个人网站主页怎么做天津工程信息建设网
  • 顺义做网站的公司网站页面设计基础教程
  • 安阳哪个公司做网站好企业没有做网站有的坏处
  • 网站开发有必要用php框架wordpress分页导航代码
  • wordpress建站seo鞍山制作网站哪家好
  • 网站空间流量查询上海门户网站制作
  • 网站开发技术是什么专业会的加强普法网站和普法网络集群建设
  • 上海建筑网站seo 推广
  • 乌兰察布做网站公司爱站网关键词挖掘工具站长工具
  • 白银网站建设白银申请网站空间怎么做
  • 免费炫酷网站模板网站建设需要用到什么软件有哪些
  • 电商网站开发 文献综述大型网站建设企业
  • 如何在建设部网站补录项目单仁牛商
  • 社保网站上做减员一直不审核软件程序开发
  • 网站友情链接购买天元建设集团有限公司资质
  • 南山商城网站建设哪家技术好株洲seo网站优化软件
  • 服务类网站建设18款禁用网站app直播
  • 电子商务网站建设需要物流网站开发公司
  • 网站的系统建设方式有哪些内容宁波网站建设公司
  • 网站开发 技术方案品牌建设总要求
  • 中卫网站建站设计seo专员的工作内容
  • h5商城网站是什么意思.net 网站开发框架
  • 西安网站改版的公司软件外包是什么意思