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

吉林市网站制作网络营销策划书模板

吉林市网站制作,网络营销策划书模板,wordpress.html,html网站建设案例1、概述 1.1、功能简介 数据管理为开发者提供数据存储、数据管理能力。 它分为两个部分#xff1a; 数据存储#xff1a;提供通用数据持久化能力#xff0c;根据数据特点#xff0c;分为用户首选项、键值型数据库和关系型数据库。数据管理#xff1a;提供高效的数据管…1、概述 1.1、功能简介 数据管理为开发者提供数据存储、数据管理能力。 它分为两个部分 数据存储提供通用数据持久化能力根据数据特点分为用户首选项、键值型数据库和关系型数据库。数据管理提供高效的数据管理能力包括权限管理、数据备分恢复、数据共享等 注应用创建的数据库都保存到应用少盒当应用卸载时数据库也会自动删除。 1.2、运作机制 数据管理模块包括用户首选项、键值型数据管理、关系型数据管理、分布式数据对象和跨应用数据管理。 Interface接口层提供标准JS API接口 FrameworksSystem service层负责实现部件数据存储功能 另外还有一些SQLite和其它子系统的依赖 用户首选项Preferences 提供轻量级配置数据持久化能力支持订阅数据变化的通知能力。不支持分布式同步常常用来保存应用配置信息、用户偏好设置等键值型数据管理KV-Store提供了键值型数据库的读写、加密、手动备份能力。暂不支持分布式功能。关系型数据管理RelationalStore提供了关系型数据库的增删改查、加密、手动备份能力。暂不支持分布式功能。分布式数据对象DataObject独立提供地象型结构数据的分布式能力暂不支持分布式功能。跨应用数据管理DataShare提供了向其他应用共享以及管理其数据的方法。仅系统应用可用。 2、应用数据持久化概述 应用数据持久化是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象存储介质上的数据形态可能是文本、数据库、二进制文件等。 HarmonyOS标准系统支持典型的存储数据形态有用户首选项、键值型数据库、关系型数据库 3、用户首选项实现数据持久化 用户首选项为应用提供key-value键值型的数据处理能力支持应用持久化轻量级数据并对其进行修改和查询。 Preferences不适合存放过多数据适用的场景一般为应用保存用户个性化的配置。 3.1、运作机制 用户程序通过JS接口调用用户首选项读写对应的数据文件。开发者可以把用户首选项持久化文件的内容加载到Preferences实例每个文件唯一对应到一个Preferences实例系统会通过静态容器把这个实例存储在内存中直到主动从内存中移除这个实例或删除这个文件。 3.2、使用约束 1、key键为string类型要求非空且长度不超过80个字节 2、value值为string类型时可以为空不为空时长度不超过8192个字节 3、内存会随着存储数据量的增大而增大所以存储的数据应该是轻量级的建议存储的数据不要超过1万条 3.3、相关接口说明 接口大部分都是异步接口异步接口都有callback和Promise两种返回形式。以下为callback为例说明 接口名称描述getPreferences(context:Context,name:string,callback:AsyncCallbackPreferences):void获取Preferences 实例put(key:string,value:valueType,callback:AsyncCallbackvoid):void把数据写入Preferences实例可以通过flush把实例进行持 久化has(key:string,callback:AsyncCallbackboolean):void检查实例中是否包含指定的key的存储键值对给定的key不可以为空get(key:string,defValue:valueType,callback:AsyncCallbackvalueType):void获取指定键对应的值如果值为null或者非默认值类型返回默认数据defValuedelete(key:string,callback:AsyncCallbackvoid):void从实例中删除指定key的存储键值对flush(callback:AsyncCallbackvoid):void把当前实例中的数据异步存储到用户首选项持久化文件中on(type:change,callback?:Callback{key:string}):void订阅数据变更订阅的key的值发生变化在执行flush方法后触发callback回调off(type:change,callback?:Callback{key:string}):void取消订阅数据变更deletePreferences(context:Context,name:string,callback:AsyncCallbackvoid):void从内存中移除指定实例如果这个实例有对应的持久化文件则同时会把持外化文件删除 3.4、开发步骤 1、导入用户首选项模块 import dataPreferences from ohos.data.preferences; 2、获取Preferences实例读取指定文件把数据加载到Preferences实例用于数据操作 import UIAbility from ohos.app.ability.UIAbility; import hilog from ohos.hilog; import window from ohos.window; import dataPreferences from ohos.data.preferences;export default class EntryAbility extends UIAbility {onCreate(want, launchParam) {}onDestroy() {}onWindowStageCreate(windowStage: window.WindowStage) {// Main window is created, set main page for this abilitytry{dataPreferences.getPreferences(this.context,mystore,(err,preferences) {if(err) {console.error(Failed to get preferences. Code:${err.code},Message:${err.message});return;}console.info(Succeeded in getting preferences.)// 进行相关的数据操作})} catch (err) {console.error(Failed to get preferences. Code:${err.code},Message:${err.message});}windowStage.loadContent(pages/Index, (err, data) {if (err.code) {hilog.error(0x0000, testTag, Failed to load the content. Cause: %{public}s, JSON.stringify(err) ?? );return;}});}onWindowStageDestroy() {// Main window is destroyed, release UI related resources}onForeground() {// Ability has brought to foreground}onBackground() {// Ability has back to background} } 在onWindowStageCreate方法中进行读取 3、写入数据 使用put()方法保存数据到缓存的Preferences实例中在写入数据后如果有必要可以使用flush()方法把Preferences实例的数据存储到持久化文件。 注意如果键此时已存在则会修改值如果需要是在键不存在时新增键值对则需要使用has()进行检查 4、读取数据 使用get()方法获取数据如果值为null或者非默认值类型则返回默认数据。 5、删除数据 使用delete()方法删除指定的键值对 6、据的持久化 应用存入数据到Preferences后可以使用flush()方法实现数据持久化 7、订阅数据更新 使用on(),订阅key值发生变化flush()执行时会回调其中的回调方法 8、删除指定文件 使用deletePreferences()方法从内存中移除指定文件对应的Preferences实例包括内存中的数据。若该Preference存在对应的持久化文件则同时删除该持久化文件包括指定文件及其备份文件、损坏文件。 // EntryAbility.tsimport UIAbility from ohos.app.ability.UIAbility; import hilog from ohos.hilog; import window from ohos.window; import dataPreferences from ohos.data.preferences;export default class EntryAbility extends UIAbility {onCreate(want, launchParam) {}onDestroy() {}onWindowStageCreate(windowStage: window.WindowStage) {// Main window is created, set main page for this abilitytry{dataPreferences.getPreferences(this.context,mystore,(err,preferences) {if(err) {console.error(Failed to get preferences. Code:${err.code},Message:${err.message});return;}console.info(Succeeded in getting preferences.)// 进行相关的数据操作globalThis.dataPreferences preferences;})} catch (err) {console.error(Failed to get preferences. Code:${err.code},Message:${err.message});}windowStage.loadContent(pages/Index, (err, data) {if (err.code) {hilog.error(0x0000, testTag, Failed to load the content. Cause: %{public}s, JSON.stringify(err) ?? );return;}});}onWindowStageDestroy() {// Main window is destroyed, release UI related resources}onForeground() {// Ability has brought to foreground}onBackground() {// Ability has back to background} }// index.etsimport dataPreferences from ohos.data.preferences; import Prompt from system.prompt; import common from ohos.app.ability.common;Entry Component struct Index {State message: string ;State message1: string ;dpf:dataPreferences.Preferences globalThis.dataPreferences;build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).margin({bottom:10})Text(this.message1).fontSize(50).fontWeight(FontWeight.Bold).margin({bottom:10})Button(put).margin({bottom:15}).onClick(() {try{this.dpf.has(startup, (err,val) {if(err) {console.error(Failed to check data. Code:${err.code}, message:${err.message});return;}if (val) {console.info(startup is exists!!)} else {try {this.dpf.put(startup, auto, (err) {if (err) {console.error(Failed to put data. Code:${err.code}, message:${err.message});return;}console.info(succeeded in putting data.)})} catch (err) {console.error(Failed to put data. Code:${err.code}, message:${err.message});}}})}catch(err) {console.error(Failed to put data. Code:${err.code}, message:${err.message});}})Button(get).margin({bottom:15}).onClick(() {try{this.dpf.get(startup,default,(err,val) {if(err) {console.error(Failed to get data. Code:${err.code}, message:${err.message});}console.info(succeeded in getting value of startup. val:${val} );this.message val.toString();})}catch (err) {console.error(Failed to get data. Code:${err.code}, message:${err.message});}})Button(delete).margin({bottom:15}).onClick(() {try{this.dpf.delete(startup, (err) {if(err) {console.error(Failed to delete data. Code:${err.code}, message:${err.message});return;}console.info(succeeded in deleting the data)})} catch (err) {console.error(Failed to delete data. Code:${err.code}, message:${err.message});}})Button(flush).margin({bottom:15}).onClick(() {try{this.dpf.flush((err) {console.error(Failed to flush data. Code:${err.code}, message:${err.message});return;})Prompt.showToast({message: 数据持久化成功,})} catch (err) {console.error(Failed to flush data. Code:${err.code}, message:${err.message});}})Button(订阅).margin({bottom:15}).onClick(() {this.dpf.on(change,(key) {console.info(key 数据发生变化)})})Button(更新).margin({bottom:15}).onClick(() {try{this.dpf.put(startup,manual,(err) {if(err) {console.error(Failed to put data. Code:${err.code}, message:${err.message});return;}})} catch (err){console.error(Failed to put data. Code:${err.code}, message:${err.message});}})Button(deletePreferences).onClick(() {try{let context: common.UIAbilityContext getContext(this) as common.UIAbilityContext;dataPreferences.getPreferences(context,mystore, (err, val) {if(err) {console.error(Failed to delete preferences. Code:${err.code}, message:${err.message});return;}console.info(successed to delete preferences.);})} catch (err) {console.error(Failed to delete preferences. Code:${err.code}, message:${err.message});}})}.width(100%)}.height(100%)}} 4、键值型数据库实现数据持久化 4.1、使用场景介绍 键值型数据库存储键值对形式的数据一般用来存储的数据没有复杂的关系模型。 4.2、使用约束 1、设备协同数据库针对每条记录key的长度小于等于896Bytevalue小于4MB 2、单版本数据库针对每条记录key的长度小于等于1KBvalue小于4MB 3、每个应用程序最多支持同时打开16个键值型分布式数据库 4、键值型数据库事件回调方法不允许进行阻塞操作 4.3、相关接口说明 接口大部分是异步操作异步接口都有callback和Promise两种形式 接口名称描述createKVManager(config: KVManagerConfig): KVManager创建一个KVManager对象实例用于管数据库对象getKVStoreT(storeId:string,options:Options,callback:AsyncCallbackT):void指定Options和storeId,创建并得到指定类型的KVStore数据库put(key:string,value:Uint8Array|string|number|boolean,callback:AsyncCallbackvoid):void添加指定类型的键值对到数据库get(key:string,callback:AsyncCallbackUint8Array|string|number|boolean):void 获取指定键对应的值delete(key:string,callback:AsyncCallbackvoid):void从数据库中删除指定键值数据 4.4、开发步骤 1、获取一个KVManager实例 在EntryAbility.ts中onCreate()或onWindowStageCreate()中创建。 onWindowStageCreate(windowStage: window.WindowStage) {// Main window is created, set main page for this ability// KVManagerConfiglet context this.context;const KvManagerConfig {context: context,bundleName: com.xiaoxie};try{let kvManager distributedKVStore.createKVManager(KvManagerConfig);console.info(Succeeded in create KVManager.)globalThis.kvManager kvManager;} catch (err){console.error(Failed to create KVManager, Code:${err.code},Message:${err.Message});}windowStage.loadContent(pages/KVStore, (err, data) {if (err.code) {hilog.error(0x0000, testTag, Failed to load the content. Cause: %{public}s, JSON.stringify(err) ?? );return;}});} 2、创建并获取键值数据库 3、调用put()方法向键值数据库中插入数据当我们据时key值存在则会修改其值否则新增一条数据 4、调用get()方法获取指定键值 5、调用delete()方法删除指定键值的数据 // KVStore.ets import distributedKVStore from ohos.data.distributedKVStore; import Prompt from system.prompt;const options {createIfMissing: true, // 当数据库文件不存在的时候是否创建默认创建encrypt: false, // 设置数据库文件是否加密默认不加密backup: false, // 设置数据库文件是否备份默认备份kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION, // 设置要创建数据库的类型默认为多设备协同securityLevel: distributedKVStore.SecurityLevel.S2 // 设置数据库的安全级别 };Entry Component struct KVStore {State message: string ;kvManager:distributedKVStore.KVManager globalThis.kvManagerkvStore:distributedKVStore.SingleKVStore undefined;build() {Row() {Column() {Text(this.message).fontSize(20).fontWeight(FontWeight.Bold).margin({bottom:10})Button(1、创建并获取键值数据库).width(50%).margin({bottom:10}).onClick(() {try{this.kvManager.getKVStore(storeId,options,(err,kvStore:distributedKVStore.SingleKVStore) {if(err) {console.error(Failed to get KVStore, Code:${err.code},Message:${err.message});return;}Prompt.showToast({message: 获取键值数据库成功,duration: 1500})this.kvStore kvStore;});} catch (e) {console.error(Failed to get KVStore, Code:${e.code},Message:${e.message});}})Button(2、向键值数据库插入数据).width(50%).margin({bottom: 10}).onClick(() {try{if(this.kvStore) {this.kvStore.put(test_key,test_value,(err) {if(err) {console.error(Failed to put data, Code:${err.code},Message:${err.message});return;}Prompt.showToast({message: 向键值数据加中插入数据成功,duration: 1500})})} else {Prompt.showToast({message: 错误请先获取数据库,duration: 1500})}} catch (e) {console.error(Failed to put data, Code:${e.code},Message:${e.message});}})Button(3、获取指定键的值).width(50%).margin({bottom:10}).onClick(() {try{if(this.kvStore) {this.kvStore.get(test_key,(err,data) {if(err) {this.message ;console.error(Failed to get data, Code:${err.code},Message:${err.message});return;}this.message ;this.message data.toString();})} else {Prompt.showToast({message: 错误请先获取数据库,duration: 1500})}} catch (e) {console.error(Failed to get data, Code:${e.code},Message:${e.message});}})Button(4、删除指定键值数据).width(50%).onClick(() {try{if(this.kvStore) {this.kvStore.delete(test_key,(err) {if(err) {console.error(Failed to delete data, Code:${err.code},Message:${err.message});return;}Prompt.showToast({message: 删除指定键值数据成功,duration: 1500})})} else {Prompt.showToast({message: 错误请先获取数据库,duration: 1500})}} catch (e){console.error(Failed to delete data, Code:${e.code},Message:${e.message});}})}.width(100%)}.height(100%)} } 5、关系型数据库实现数据持久化
http://www.yutouwan.com/news/115506/

相关文章:

  • 站长工具seo综合查询怎么关闭湖南关于新冠最新通知
  • 网页游戏网站排名前10名logo网站有哪些
  • 做外账要登什么网站wordpress表情
  • 开一个网站建设公司凡客诚品是什么
  • 网络推广案例公司网站优化软件
  • php网站开发百度百科四位分享码2023
  • 做健身网站步骤上海专业网站建设咨询
  • 网站图片怎么做超链接江北网站建设
  • 新手做网站推荐WordPress怎么改文章颜色
  • 百度如何把网站做链接地址莱芜一中贴吧
  • 网站建设新手教程视频教程互动营销案例分析
  • 个人视频网站注册平台网站如何设置微信支付功能
  • 建设一个电商网站wordpress菜单和页面的关系
  • 营销型网站能解决什么问题网站报名照片怎么做
  • 免费源码交易网站源码企业网站ui
  • 油画网站模板微信群营销工具
  • 专业做公司宣传网站做网站没装数据库
  • 浙江省城乡建设厅网站首页网站404做多大
  • 门户网站建设如何入账郑州短视频培训机构
  • seo提升排名技巧东莞百度搜索排名优化
  • 网站设计动画discuz应用中心退款
  • 河南网站备案系统短信北京企业模板建站
  • 中国万网官方网站广州最新新闻
  • 米粒网站建设与推广专家网站 建设 申请
  • 土巴兔装修贵吗落实20条优化措施
  • 汤唯梁朝伟做视频网站家具网站开发设计论文
  • 微信网站怎么建设济南学网站建设哪里好
  • 企业网站建设请示南通网站推广公司哪家好
  • 网站建设环保广告设计有哪些
  • 卡盟网站怎么做图片大全怎么自己做音乐网站