HarmonyOS 鸿蒙Next: 如何将输入框中的内容放入建好的数据库ets文件中

HarmonyOS 鸿蒙Next: 如何将输入框中的内容放入建好的数据库ets文件中 构建了一个XiuliDate.ets,如下图所示

又新建了一个XinzengPage页面,如下图所示

如何将XinzengPage页面中的各项数据存入XiuliDate.ets?

3 回复

要将XinzengPage页面中的各项数据存入XiuliDate.ets,势必要将数据类进行单例化改造,使得每次数据的存储位置都指向同一实例对象,代码改造如下:

// 准备新增的修理数据
export class XiuliDate {
    private static instance: XiuliDate;
    private constructor(
        zhuangbeileixing: string,
        zhandoubianhao: string,
        guzhangshijian: string,
        guzhangbuwei: string,
        guzhangxianxiang: string,
        chuzhifangshi: string,
        xiaoqicai: string,
        xiujunshijian: string,
        zhuangbeifuzeren: string,
        xiuligong: string
    ) {
        this.zhuangbeileixing = zhuangbeileixing;
        this.zhandoubianhao = zhandoubianhao;
        this.guzhangshijian = guzhangshijian;
        this.guzhangbuwei = guzhangbuwei;
        this.guzhangxianxiang = guzhangxianxiang;
        this.chuzhifangshi = chuzhifangshi;
        this.xiaoqicai = xiaoqicai;
        this.xiujunshijian = xiujunshijian;
        this.zhuangbeifuzeren = zhuangbeifuzeren;
        this.xiuligong = xiuligong;
    }

    // 公共静态方法,用于获取单例实例
    public static getInstance(
        zhuangbeileixing: string,
        zhandoubianhao: string,
        guzhangshijian: string,
        guzhangbuwei: string,
        guzhangxianxiang: string,
        chuzhifangshi: string,
        xiaoqicai: string,
        xiujunshijian: string,
        zhuangbeifuzeren: string,
        xiuligong: string
    ): XiuliDate {
        if (!XiuliDate.instance) {
            XiuliDate.instance = new XiuliDate(
                zhuangbeileixing,
                zhandoubianhao,
                guzhangshijian,
                guzhangbuwei,
                guzhangxianxiang,
                chuzhifangshi,
                xiaoqicai,
                xiujunshijian,
                zhuangbeifuzeren,
                xiuligong
            );
        }
        return XiuliDate.instance;
    }

    zhuangbeileixing: string;
    zhandoubianhao: string;
    guzhangshijian: string;
    guzhangbuwei: string;
    guzhangxianxiang: string;
    chuzhifangshi: string;
    xiaoqicai: string;
    xiujunshijian: string;
    zhuangbeifuzeren: string;
    xiuligong: string;
}

// 封装一个方法:创建数据
export const xiuliListRange = (): XiuliDate[] => {
    let result: XiuliDate[] = new Array();
    result = [
        // 这里可以添加获取实例的方法
        XiuliDate.getInstance('类型1', '编号1', '时间1', '部位1', '现象1', '方式1', '材料1', '时间2', '负责人1', '工人1'),
        // 可以继续添加更多实例
    ];
    return result;
};

对构造函数进行了私有化改造,防止外部直接实例化类。所以导出使用方式上也有所区别:

let xiuliData = XiuliDate.getInstance('类型1', '编号1', '时间1', '部位1', '现象1', '方式1', '材料1', '时间2', '负责人1', '工人1');
console.log(xiuliData);

更多关于HarmonyOS 鸿蒙Next: 如何将输入框中的内容放入建好的数据库ets文件中的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢大哥赐教,

基本信息

  • 姓名: 张三
  • 年龄: 28
  • 职位: 软件工程师

在HarmonyOS鸿蒙Next中,将输入框中的内容存入已创建的ETS数据库文件,可以通过以下步骤实现:

  1. 创建ETS数据库:首先,使用PreferencesRdbStoreAPI创建或打开一个ETS数据库文件。Preferences适用于轻量级数据存储,而RdbStore适用于复杂的关系型数据存储。

  2. 定义表结构:如果使用RdbStore,定义一个表结构来存储输入框的内容。表结构应包括字段名称、数据类型等信息。

  3. 获取输入框内容:通过UI层获取输入框的内容。例如,使用TextInput组件,并通过onChange事件监听用户输入,将内容存储在变量中。

  4. 插入数据:将获取到的输入框内容插入到ETS数据库中。如果使用Preferences,可以通过put方法存储键值对。如果使用RdbStore,可以通过insert方法将数据插入到定义好的表中。

  5. 保存并关闭数据库:在数据插入完成后,保存对数据库的更改。如果使用Preferences,调用flush方法。如果使用RdbStore,调用commit方法。最后,关闭数据库连接。

以下是一个简单的示例代码片段,展示如何使用RdbStore将输入框内容存储到数据库中:

import rdb from '@ohos.data.relationalStore';

// 打开或创建数据库
let rdbStore: rdb.RdbStore;
const config: rdb.StoreConfig = {
  name: 'myDatabase.db',
};
rdb.getRdbStore(this.context, config, (err, store) => {
  if (err) {
    console.error(`Failed to get RdbStore. Code:${err.code}, message:${err.message}`);
    return;
  }
  rdbStore = store;
});

// 插入输入框内容到数据库
let inputText = "用户输入的内容"; // 替换为实际获取的输入框内容
const insertSql = 'INSERT INTO myTable (content) VALUES (?)';
rdbStore.executeSql(insertSql, [inputText], (err) => {
  if (err) {
    console.error(`Failed to insert data. Code:${err.code}, message:${err.message}`);
  } else {
    console.log('Data inserted successfully');
  }
});

通过上述步骤,可以将输入框中的内容存储到鸿蒙Next的ETS数据库文件中。

回到顶部