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

网站建设话术开场白推广营销方式有哪些

网站建设话术开场白,推广营销方式有哪些,凡科网站怎么样,哪有可以专门做外包项目的网站注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 目录 1. 应用数据持久化 2. 应用数据持久化-关…

 注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下

如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识

目录

1. 应用数据持久化

2. 应用数据持久化-关系型数据库

2.1 概述

2.2 运行机制

2.3 约束限制

2.4 常用方法

2.4.1 在生命周期函数中添加代码

2.4.2 创建实体类Student

2.4.3 创建工具类RdbUtil

2.4.4 在界面中操作数据库

2.4.5 删除数据库


1. 应用数据持久化

应用数据持久化,是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象,存储介质上的数据形态可能是文本、数据库、二进制文件等。

HarmonyOS标准系统支持典型的存储数据形态,包括用户首选项、键值型数据库、关系型数据库。

  • 用户首选项(Preferences):通常用于保存应用的配置信息。数据通过文本的形式保存在设备中,应用使用过程中会将文本中的数据全量加载到内存中,所以访问速度快、效率高,但不适合需要存储大量数据的场景。
  • 键值型数据库(KV-Store):一种非关系型数据库,其数据以“键值”对的形式进行组织、索引和存储,其中“键”作为唯一标识符。适合很少数据关系和业务关系的业务数据存储,同时因其在分布式场景中降低了解决数据库版本兼容问题的复杂度,和数据同步过程中冲突解决的复杂度而被广泛使用。相比于关系型数据库,更容易做到跨设备跨版本兼容。
  • 关系型数据库(RelationalStore):一种关系型数据库,以行和列的形式存储数据,广泛用于应用中的关系型数据的处理,包括一系列的增、删、改、查等接口,开发者也可以运行自己定义的SQL语句来满足复杂业务场景的需要。

2. 应用数据持久化-关系型数据库

2.1 概述

关系型数据库基于SQLite组件,适用于存储包含复杂关系数据的场景,比如一个班级的学生信息,需要包括姓名、学号、各科成绩等,又或者公司的雇员信息,需要包括姓名、工号、职位等,由于数据之间有较强的对应关系,复杂程度比键值型数据更高,此时需要使用关系型数据库来持久化保存数据。

2.2 运行机制

关系型数据库对应用提供通用的操作接口,底层使用SQLite作为持久化存储引擎,支持SQLite具有的数据库特性,包括但不限于事务、索引、视图、触发器、外键、参数化查询和预编译SQL语句。

2.3 约束限制

  • 系统默认日志方式是WAL(Write Ahead Log)模式,系统默认落盘方式是FULL模式。
  • 数据库中有4个读连接和1个写连接,线程获取到空闲读连接时,即可进行读取操作。当没有空闲读连接且有空闲写连接时,会将写连接当做读连接来使用。
  • 为保证数据的准确性,数据库同一时间只能支持一个写操作。
  • 当应用被卸载完成后,设备上的相关数据库文件及临时文件会被自动清除。
  • ArkTS侧支持的基本数据类型:number、string、二进制类型数据、boolean。
  • 为保证插入并读取数据成功,建议一条数据不要超过2M。超出该大小,插入成功,读取失败

2.4 常用方法

2.4.1 在生命周期函数中添加代码

导入模块代码

import { relationalStore } from '@kit.ArkData';

在onWindowStageCreate生命周期函数中添加代码,初始化数据库

// 创建数据库
const STORE_CONFIG: relationalStore.StoreConfig = {name: 'RdbTest.db', // 数据库文件名securityLevel: relationalStore.SecurityLevel.S3, // 数据库安全级别encrypt: false, // 可选参数,指定数据库是否加密,默认不加密customDir: 'customDir/subCustomDir', // 可选参数,数据库自定义路径。数据库将在如下的目录结构中被创建:context.databaseDir + '/rdb/' + customDir,其中context.databaseDir是应用沙箱对应的路径,'/rdb/'表示创建的是关系型数据库,customDir表示自定义的路径。当此参数不填时,默认在本应用沙箱目录下创建RdbStore实例。isReadOnly: false // 可选参数,指定数据库是否以只读方式打开。该参数默认为false,表示数据库可读可写。该参数为true时,只允许从数据库读取数据,不允许对数据库进行写操作,否则会返回错误码801。
};
relationalStore.getRdbStore(this.context, STORE_CONFIG, (err, store) => {if (err) {console.error(`Failed to get RdbStore. Code:${err.code}, message:${err.message}`);return;}console.info(`Succeeded in getting RdbStore.`);//保存store, 方便后面我们对数据库的操作RdbUtil.setStore(store)})

2.4.2 创建实体类Student

查询的时候需要用实体类接收下数据库里面数据

export default class Student {id: number = 0username: stringage: number = 0constructor(id: number, username: string, age: number) {this.id = idthis.username = usernamethis.age = age}
}

2.4.3 创建工具类RdbUtil

import relationalStore from '@ohos.data.relationalStore';
import Student from '../models/Student';
import { BusinessError } from '@ohos.base';/*** 关系型数据库工具类*/
export default class RdbUtil {/*** 数据库对象*/private static rdbStore: relationalStore.RdbStore;static setStore(store: relationalStore.RdbStore) {RdbUtil.rdbStore = store;}static getStore(): relationalStore.RdbStore {return RdbUtil.rdbStore;}/*** 执行sql* @param sql* @returns*/static executeSql(sql: string): Promise<void> {return RdbUtil.getStore().executeSql(sql);}/*** 插入数据* @param tableName* @param data* @returns*/static insert(tableName: string, data: relationalStore.ValuesBucket): Promise<number> {return RdbUtil.getStore().insert(tableName, data);}/*** 查询数据* @returns*/static queryAll(): Promise<Array<Student>> {let predicates = new relationalStore.RdbPredicates('STUDENT');return new Promise<Array<Student>>((resolve, reject) => {RdbUtil.getStore().query(predicates).then((result) => {let students = new Array<Student>();while (result.goToNextRow()) {let student = new Student(result.getLong(0),result.getString(1),result.getLong(2),);students.push(student);}resolve(students);}).catch((error: BusinessError) => {reject(error)})})}/*** 删除* @param id* @returns*/static deleteById(id: number) {let predicates = new relationalStore.RdbPredicates('STUDENT');predicates.equalTo('ID', id)return RdbUtil.getStore().delete(predicates);}/*** 更新* @param id* @param data* @returns*/static updateById(id: number, data: relationalStore.ValuesBucket) {let predicates = new relationalStore.RdbPredicates('STUDENT');predicates.equalTo('ID', id)return RdbUtil.getStore().update(data, predicates);}
}

注意:该工具类里面包含了创建表,新增数据,查询数据,更新数据,删除数据 的api

2.4.4 在界面中操作数据库

import RdbUtil from '../utils/RdbUtil';
import { BusinessError } from '@kit.BasicServicesKit';
import { promptAction } from '@kit.ArkUI';
import { relationalStore } from '@kit.ArkData';
import Student from '../models/Student';@Entry@Componentstruct Index {build() {Column() {Button('创建数据库表').onClick(() => {const SQL_CREATE_TABLE ='CREATE TABLE IF NOT EXISTS STUDENT (ID INTEGER PRIMARY KEY AUTOINCREMENT, USERNAME TEXT NOT NULL, AGE INTEGER)'; // 建表Sql语句RdbUtil.executeSql(SQL_CREATE_TABLE).then(() => {promptAction.showToast({message: 'success create table'})}).catch((err: BusinessError) => {promptAction.showToast({message: 'fail  create table'})})}).margin({ bottom: 50 })Button('插入数据').onClick(() => {const valueBucket: relationalStore.ValuesBucket = {'USERNAME': '东林','AGE': 18};RdbUtil.insert('STUDENT', valueBucket).then((updateNumber) => {promptAction.showToast({message: 'insert data success ' + updateNumber})}).catch((error: BusinessError) => {promptAction.showToast({message: 'insert data fail ' + error})})}).margin({ bottom: 50 })Button('查询数据').onClick(() => {RdbUtil.queryAll().then((students: Array<Student>) => {promptAction.showToast({message: 'query students success  ' + JSON.stringify(students)})}).catch((error: BusinessError) => {promptAction.showToast({message: ' query students fail  ' + error})})}).margin({ bottom: 50 })Button('修改数据').onClick(() => {const valueBucket: relationalStore.ValuesBucket = {'USERNAME': '小红','AGE': 20};RdbUtil.updateById(1, valueBucket).then((updateNumber) => {promptAction.showToast({message: 'update student success ' + updateNumber.toString()})}).catch((err: BusinessError) => {promptAction.showToast({message: ' update student fail  ' + err})})}).margin({ bottom: 50 })Button('删除数据').onClick(() => {RdbUtil.deleteById(1).then((updateNumber) => {promptAction.showToast({message: 'delete student success ' + updateNumber.toString()})}).catch((err: BusinessError) => {promptAction.showToast({message: 'delete student fail ' + err})})})}.height('100%').width('100%')}}

2.4.5 删除数据库

在生命周期函数里面删除数据库

onDestroy(): void {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');// 删除数据库relationalStore.deleteRdbStore(this.context, 'RdbTest.db', (err) => {if (err) {console.error(`Failed to delete RdbStore. Code:${err.code}, message:${err.message}`);return;}console.info('Succeeded in deleting RdbStore.');});
}


文章转载自:

http://fIiYK2Ho.Lbrwm.cn
http://6eGOuT8b.Lbrwm.cn
http://JCUspkbb.Lbrwm.cn
http://GsiU6uPM.Lbrwm.cn
http://kXH783dW.Lbrwm.cn
http://qgehFX2Y.Lbrwm.cn
http://VOEL4tjN.Lbrwm.cn
http://PIHQA2AM.Lbrwm.cn
http://9YotOrM7.Lbrwm.cn
http://3sSNgYJd.Lbrwm.cn
http://K0Sxleli.Lbrwm.cn
http://fo6lmx3l.Lbrwm.cn
http://Y9tQSZ5Z.Lbrwm.cn
http://wvq3wRqW.Lbrwm.cn
http://vEUkVymF.Lbrwm.cn
http://SWjPTfcH.Lbrwm.cn
http://NVlAFSw8.Lbrwm.cn
http://KsHmoSmP.Lbrwm.cn
http://GloL6fu9.Lbrwm.cn
http://h4aJXyO4.Lbrwm.cn
http://X6ILKodp.Lbrwm.cn
http://3zaklE1S.Lbrwm.cn
http://H9UYFHS3.Lbrwm.cn
http://a77KY3fS.Lbrwm.cn
http://HQ5MjfUv.Lbrwm.cn
http://AqKK5zXN.Lbrwm.cn
http://OEHfPgN4.Lbrwm.cn
http://TnZesWLS.Lbrwm.cn
http://xklzeA6e.Lbrwm.cn
http://m15pcO01.Lbrwm.cn
http://www.dtcms.com/wzjs/726954.html

相关文章:

  • 网站增加权重做营销网站要多少钱
  • 网页网站开发工具wordpress怎样显示文章全部列表
  • 知名网站建设简约中国风免费ppt模板
  • 国外做网站的软件成都地铁建设分公司网站
  • 南京做网站引流的公司高端品牌网站建设制作需要注意什么
  • 网站ui设计兼职网页游戏直接玩
  • 网站开发的试题公司网站升级改版方案
  • 湛江建站服务wordpress 微信悬浮
  • 微信网站开发新开页面设计师网址推荐
  • 不注册公司可以做网站吗网站在建设中无法访问
  • 北京seoqq群佛山网站建设优化企业
  • 互联网网站开发html5核酸结果查询
  • 辽宁省住房和城乡建设厅网站进不去中国铁建一体化平台登录
  • 免费1级做爰片在线网站大庆seo推广
  • 新闻静态网站咋做湖南二级建造师在哪个网站做变更
  • 网站的建设服务平台网站平台建设意见
  • 学校网站的建设费用吗工业设计作品网站
  • 五金技术支持东莞网站建设上海做家教去哪个网站
  • 邯郸做网站推广多少钱梧州网站建设2k9网络团队提供高品质网站建设服务
  • 天河定制型网站建设备案增加网站
  • 做伤残鉴约号网站上海徐汇区最新发布
  • 明水县网站建设wordpress二级域名做站群
  • 国际贸易网站建设 中企动力湖北在线网页翻译成中文
  • 网站cdn加速怎么入侵如何制作企业官网
  • 免费建设淘客网站东莞横沥新闻今天
  • wordpress 积分下载插件网站建设优化方法 s
  • 济南做网站建设的公司东莞网站建设 汇卓
  • 专业建网站 成都网页制作与网站建设pdf
  • 重庆网站备案系统网站建设含义
  • wordpress 注册 填写密码错误网络seo推广