当前位置: 首页> 财经> 金融 > 湖南长沙景点_湖南建设人才网官网证书查询_东莞网站优化公司哪家好_seo技术教程博客

湖南长沙景点_湖南建设人才网官网证书查询_东莞网站优化公司哪家好_seo技术教程博客

时间:2025/7/13 7:15:41来源:https://blog.csdn.net/weixin_45126622/article/details/147002180 浏览次数:0次
湖南长沙景点_湖南建设人才网官网证书查询_东莞网站优化公司哪家好_seo技术教程博客

建库建表

// entry/src/main/ets/database/AccountTagTable.ets
import { relationalStore } from '@kit.ArkData';export interface TableData {id: number,tagName: string,tagImage: string,tagNumber: number,accountType: number
}function bucket(data: TableData): relationalStore.ValuesBucket {let obj: relationalStore.ValuesBucket = {tagName: data.tagName,tagImage: data.tagImage,tagNumber: data.tagNumber,accountType: data.accountType}return obj
}export default class AccountTagTable {private tableName: string = 'tagTable'// 表结构:tagTable (id, tagName, tagImage, tagNumber, accountType)private createTable = 'CREATE TABLE IF NOT EXISTS tagTable (id INTEGER PRIMARY KEY AUTOINCREMENT' +', tagName Text, tagImage Text, tagNumber INTEGER, accountType INTEGER)';private rdbStore: relationalStore.RdbStore | undefined = undefined;// 建库建表getRdbStore(callback: Function) {const STORE_CONFIG :relationalStore.StoreConfig= { // 关系数据库配置name: 'Rdb.db', // 数据库文件名securityLevel: relationalStore.SecurityLevel.S3, // 数据库安全级别,allowRebuild: true // 指定数据库是否支持异常时自动删除,并重建一个空库空表};let context: Context = getContext(this) as ContextrelationalStore.getRdbStore(context, STORE_CONFIG, (err, store) => { // 建库:Rdb.dbif (err) {console.error(`Failed to get RdbStore. Code:${err.code}, message:${err.message}`);return;}this.rdbStore = store// 当数据库创建时,数据库默认版本为0if (store.version === 0) {store.executeSql(this.createTable); // 建表// 设置数据库的版本,入参为大于0的整数store.version = 1;}callback()});}// 增insert(data: TableData, callback: Function) {const valuesBucket: relationalStore.ValuesBucket = bucket(data)if (this.rdbStore !== undefined) {this.rdbStore.insert(this.tableName, valuesBucket, (err) => {if (err) {console.error(`Insert failed, code is ${err.code}, message is ${err.message}`);return;}callback()})}}// 删delete(data: TableData, callback: Function) {let predicates = new relationalStore.RdbPredicates(this.tableName);predicates.equalTo('id', data.id);if (this.rdbStore !== undefined) {this.rdbStore.delete(predicates, (err) => {if (err) {console.error(`Delete failed, code is ${err.code}, message is ${err.message}`);return;}callback()})}}// 改update(data: TableData, callback: Function) {const valuesBucket: relationalStore.ValuesBucket = bucket(data)let predicates = new relationalStore.RdbPredicates(this.tableName);predicates.equalTo('id', data.id);if (this.rdbStore !== undefined) {this.rdbStore.update(valuesBucket, predicates, (err) => {if (err) {console.error(`Updated failed, code is ${err.code}, message is ${err.message}`);return;}callback()})}}// 查querySql(callback: Function) {if (this.rdbStore !== undefined) {this.rdbStore.querySql('SELECT * FROM tagTable ORDER BY tagNumber ASC', (err, resultSet) => {if (err) {console.error(`Query failed, code is ${err.code}, message is ${err.message}`);return;}const result: TableData[] = []// resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。while (resultSet.goToNextRow()) {let tmp: TableData = {id: resultSet.getLong(resultSet.getColumnIndex("id")),tagName: resultSet.getString(resultSet.getColumnIndex("tagName")),tagImage: resultSet.getString(resultSet.getColumnIndex("tagImage")),tagNumber: resultSet.getLong(resultSet.getColumnIndex("tagNumber")),accountType: resultSet.getLong(resultSet.getColumnIndex("accountType"))}result.push(tmp)}callback(result)// 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露resultSet.close();})}}// 从指定的数据库备份文件恢复数据库backup(callback: Function) {if (this.rdbStore != undefined) {this.rdbStore.backup("Backup.db", (err) => {if (err) {console.error(`Backup failed, code is ${err.code}, message is ${err.message}`);return;}callback()})}}// 从指定的数据库备份文件恢复数据库restore(callback: Function) {if (this.rdbStore != undefined) {this.rdbStore.restore('Backup.db', (err) => {console.log('112244')if (err) {console.error(`Restore failed, code is ${err.code}, message is ${err.message}`);return;}callback()})}}
}

使用

import AccountTagTable, { TableData } from '../database/AccountTagTable'@Entry
@Component
struct Index {private rdb = new AccountTagTable()@State tableData: TableData = {id: -1,tagName: '',tagImage: '',tagNumber: 1,accountType: 0}aboutToAppear(): void {this.rdb.getRdbStore(() => {this.rdb.querySql((result: TableData[]) => {// 查询数据})})}build() {}
}
// 增
this.rdb.insert(this.tableData, () => {})
// 删
this.rdb.delete(this.tableData, () => {})
// 改
this.rdb.update(this.tableData, () => {})
关键字:湖南长沙景点_湖南建设人才网官网证书查询_东莞网站优化公司哪家好_seo技术教程博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: