HarmonyOS 鸿蒙Next: 如何将输入框中的内容放入建好的数据库ets文件中
HarmonyOS 鸿蒙Next: 如何将输入框中的内容放入建好的数据库ets文件中 构建了一个XiuliDate.ets,如下图所示
又新建了一个XinzengPage页面,如下图所示
如何将XinzengPage页面中的各项数据存入XiuliDate.ets?
要将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数据库文件,可以通过以下步骤实现:
-
创建ETS数据库:首先,使用
Preferences
或RdbStore
API创建或打开一个ETS数据库文件。Preferences
适用于轻量级数据存储,而RdbStore
适用于复杂的关系型数据存储。 -
定义表结构:如果使用
RdbStore
,定义一个表结构来存储输入框的内容。表结构应包括字段名称、数据类型等信息。 -
获取输入框内容:通过UI层获取输入框的内容。例如,使用
TextInput
组件,并通过onChange
事件监听用户输入,将内容存储在变量中。 -
插入数据:将获取到的输入框内容插入到ETS数据库中。如果使用
Preferences
,可以通过put
方法存储键值对。如果使用RdbStore
,可以通过insert
方法将数据插入到定义好的表中。 -
保存并关闭数据库:在数据插入完成后,保存对数据库的更改。如果使用
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数据库文件中。