fix: 优化数据库操作上层代码
This commit is contained in:
parent
eb6019096d
commit
7b45c1f0f9
1
entry/src/main/ets/config/LogEnum.ets
Normal file
1
entry/src/main/ets/config/LogEnum.ets
Normal file
@ -0,0 +1 @@
|
|||||||
|
export const DbTag = '[DBTag]';
|
||||||
1
entry/src/main/ets/config/index.ets
Normal file
1
entry/src/main/ets/config/index.ets
Normal file
@ -0,0 +1 @@
|
|||||||
|
export * from "./LogEnum";
|
||||||
@ -31,7 +31,7 @@ struct Index {
|
|||||||
this.deviceName = value.getLocalDeviceInfoSync().deviceName
|
this.deviceName = value.getLocalDeviceInfoSync().deviceName
|
||||||
this.deviceNo = value.getLocalDeviceInfoSync().deviceId.substring(0, 10).toUpperCase()
|
this.deviceNo = value.getLocalDeviceInfoSync().deviceId.substring(0, 10).toUpperCase()
|
||||||
this.ip = 'MAC-' + this.deviceNo
|
this.ip = 'MAC-' + this.deviceNo
|
||||||
AppStorage.setOrCreate('deviceNo', 'MAC-' + this.deviceNo)
|
AppStorage.SetOrCreate('deviceNo', 'MAC-' + this.deviceNo)
|
||||||
});
|
});
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import relationalStore from '@ohos.data.relationalStore'
|
import relationalStore from '@ohos.data.relationalStore'
|
||||||
import common from '@ohos.app.ability.common'
|
import common from '@ohos.app.ability.common'
|
||||||
import { BusinessError } from '@ohos.base'
|
import { BusinessError } from '@ohos.base'
|
||||||
|
import { DbTag } from "../config"
|
||||||
|
|
||||||
export interface ColumnInfo {
|
export interface ColumnInfo {
|
||||||
name: string,
|
name: string,
|
||||||
@ -29,7 +30,7 @@ class DbUtils {
|
|||||||
console.info("db rdbStore init success")
|
console.info("db rdbStore init success")
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
.catch((err: any) => {
|
.catch((err: BusinessError) => {
|
||||||
console.error(`db rdbStore init fail reason:${err}`);
|
console.error(`db rdbStore init fail reason:${err}`);
|
||||||
reject(err)
|
reject(err)
|
||||||
})
|
})
|
||||||
@ -46,7 +47,7 @@ class DbUtils {
|
|||||||
console.info("sql createTable success")
|
console.info("sql createTable success")
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err: BusinessError) => {
|
||||||
console.error(`sql createTable fail err:${JSON.stringify(err)}`);
|
console.error(`sql createTable fail err:${JSON.stringify(err)}`);
|
||||||
reject(err)
|
reject(err)
|
||||||
})
|
})
|
||||||
@ -76,7 +77,7 @@ class DbUtils {
|
|||||||
if (this.rdbStore) {
|
if (this.rdbStore) {
|
||||||
this.rdbStore?.executeSql(sql).then(() => {
|
this.rdbStore?.executeSql(sql).then(() => {
|
||||||
resolve("")
|
resolve("")
|
||||||
}).catch((err) => {
|
}).catch((err: BusinessError) => {
|
||||||
reject(err)
|
reject(err)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@ -86,7 +87,7 @@ class DbUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 插入数据
|
// 插入数据
|
||||||
insertData(tableName: string, obj: any): Promise<number> {
|
insertData(tableName: string, obj: ESObject): Promise<number> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (this.rdbStore) {
|
if (this.rdbStore) {
|
||||||
this.rdbStore?.insert(tableName, obj, (err, res) => {
|
this.rdbStore?.insert(tableName, obj, (err, res) => {
|
||||||
@ -104,6 +105,19 @@ class DbUtils {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 根据表名删除表
|
||||||
|
deleteByName(tableName: string): Promise<boolean> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const SQL = `DELETE FROM ${tableName};`
|
||||||
|
this.executeSql(SQL).then(res => {
|
||||||
|
console.log(DbTag, "删除表成功!表名:", tableName)
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err: BusinessError) => {
|
||||||
|
console.log(DbTag, "删除表失败!表名:", tableName, "错误信息:", JSON.stringify(err))
|
||||||
|
reject(false)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 插入表数据
|
// 插入表数据
|
||||||
// insertData(tableName: string, obj: object, columns: ColumnInfo[]): Promise<number> {
|
// insertData(tableName: string, obj: object, columns: ColumnInfo[]): Promise<number> {
|
||||||
@ -123,9 +137,9 @@ class DbUtils {
|
|||||||
resolve(null)
|
resolve(null)
|
||||||
} else {
|
} else {
|
||||||
res.goToNextRow()
|
res.goToNextRow()
|
||||||
resolve(res.getLong(0) as unknown as T)
|
resolve(res.getLong(0) as T)
|
||||||
}
|
}
|
||||||
}).catch((err) => {
|
}).catch((err: BusinessError) => {
|
||||||
console.error(`sql queryCount fail err:${JSON.stringify(err)}`);
|
console.error(`sql queryCount fail err:${JSON.stringify(err)}`);
|
||||||
reject(err)
|
reject(err)
|
||||||
})
|
})
|
||||||
@ -199,7 +213,7 @@ class DbUtils {
|
|||||||
obj[info.name] = val;
|
obj[info.name] = val;
|
||||||
});
|
});
|
||||||
// 3.3.将对象填入结果数组
|
// 3.3.将对象填入结果数组
|
||||||
arr.push(obj as unknown as T); // 将 obj 断言为 T 类型
|
arr.push(obj as T); // 将 obj 断言为 T 类型
|
||||||
}
|
}
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
@ -1,13 +1,91 @@
|
|||||||
import DB from '../DbSql';
|
import { TableDefinition, User } from '../../model';
|
||||||
|
import DB, { ColumnInfo, ColumnType } from '../DbSql';
|
||||||
import { ParameterPlatform } from './Relationship';
|
import { ParameterPlatform } from './Relationship';
|
||||||
|
import { BusinessError } from '@ohos.base';
|
||||||
|
|
||||||
// 建表操作
|
// 建表操作
|
||||||
export async function initTable() {
|
export async function InitTable() {
|
||||||
// const keys = Object.keys(ParameterPlatform);
|
|
||||||
// for (const key of keys) {
|
|
||||||
// await DB.executeSql(ParameterPlatform[key].sqlCreate);
|
|
||||||
// }
|
|
||||||
Object.keys(ParameterPlatform).forEach(async (item) => {
|
Object.keys(ParameterPlatform).forEach(async (item) => {
|
||||||
await DB.executeSql(ParameterPlatform[MA_MARKRULE]);
|
await DB.executeSql(ParameterPlatform[item].sqlCreate);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 插表操作
|
||||||
|
export function SqlInsertTable(tableName: string, data: Array<User>, delFlag = true): Promise<boolean> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
data.forEach((element, index) => {
|
||||||
|
element.id = !delFlag ? `${index + data.length}` : `${index}`
|
||||||
|
})
|
||||||
|
DB.clearTable(tableName).then((res) => {
|
||||||
|
const columns = Object.keys(data[0]).join(', ');
|
||||||
|
const values = data
|
||||||
|
.map((item) => {
|
||||||
|
const rowValues = Object.values(item)
|
||||||
|
.map((value: string | number) => (typeof value === 'string' ? `'${value}'` : value))
|
||||||
|
return `(${rowValues})`;
|
||||||
|
})
|
||||||
|
.join(', ');
|
||||||
|
let INSERT_SQL = "INSERT INTO " + tableName
|
||||||
|
+ " (" + columns + ") VALUES " + values
|
||||||
|
DB.executeSql(INSERT_SQL).then(() => {
|
||||||
|
console.log('sql insert,', res, 'tableName', tableName)
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err: BusinessError) => {
|
||||||
|
console.log('sql insert err,', JSON.stringify(err), 'tableName', tableName)
|
||||||
|
reject(err)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 参数平台
|
||||||
|
|
||||||
|
|
||||||
|
// TODO 后续废弃这个方法,直接调用SqlInsertTable
|
||||||
|
// 依据数组和表名更新sql表
|
||||||
|
export function UpdateTableByArray(tableName: string, arr: Array<User>): Promise<boolean> {
|
||||||
|
return SqlInsertTable(tableName, arr)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//依据表名同步获取数据
|
||||||
|
export async function GetSyncData(tableName: string): Promise<boolean> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const columns: ColumnInfo[] = ParameterPlatform[tableName].columns.map((res: string) => {
|
||||||
|
return {
|
||||||
|
name: res,
|
||||||
|
columnName: res,
|
||||||
|
type: ColumnType.STRING
|
||||||
|
} as ColumnInfo
|
||||||
|
})
|
||||||
|
// TODO 需要完善此处类型
|
||||||
|
DB.queryListBySql<ESObject>(`select * from ${tableName}`, columns).then(() => {
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err: BusinessError) => {
|
||||||
|
reject(err)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO 后续废弃这个方法,直接调用DB.deleteByName
|
||||||
|
// 删除表
|
||||||
|
export async function DeleteSyncTable(tableName: string): Promise<boolean> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
DB.deleteByName(tableName).then(() => {
|
||||||
|
resolve(true)
|
||||||
|
}).catch(() => {
|
||||||
|
reject(false)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -26,51 +26,97 @@ import {
|
|||||||
} from './TableMessage';
|
} from './TableMessage';
|
||||||
|
|
||||||
|
|
||||||
export const ParameterPlatform: TableMapType = {
|
// export const ParameterPlatform: TableMapType = {
|
||||||
MA_MARKRULE: MA_MARKRULE,
|
// MA_MARKRULE: MA_MARKRULE,
|
||||||
MA_SYSTEMPARM: MA_SYSTEMPARM,
|
// MA_SYSTEMPARM: MA_SYSTEMPARM,
|
||||||
MA_MAP_COLLECT: MA_MAP_COLLECT,
|
// MA_MAP_COLLECT: MA_MAP_COLLECT,
|
||||||
MA_MAP_COLLECT_SHAPE: MA_MAP_COLLECT_SHAPE,
|
// MA_MAP_COLLECT_SHAPE: MA_MAP_COLLECT_SHAPE,
|
||||||
MA_MAP_ITEMCLASS: MA_MAP_ITEMCLASS,
|
// MA_MAP_ITEMCLASS: MA_MAP_ITEMCLASS,
|
||||||
MA_MAP_POINT: MA_MAP_POINT,
|
// MA_MAP_POINT: MA_MAP_POINT,
|
||||||
MA_MAP_POINT_ITEM: MA_MAP_POINT_ITEM,
|
// MA_MAP_POINT_ITEM: MA_MAP_POINT_ITEM,
|
||||||
MA_MAP_ROAD: MA_MAP_ROAD,
|
// MA_MAP_ROAD: MA_MAP_ROAD,
|
||||||
MA_MAP_ROAD_LANE: MA_MAP_ROAD_LANE,
|
// MA_MAP_ROAD_LANE: MA_MAP_ROAD_LANE,
|
||||||
MAP_SUBITEM: MA_MAP_SUBITEM,
|
// MAP_SUBITEM: MA_MAP_SUBITEM,
|
||||||
MA_MAP_SUBITEM: MA_MAP_SUBITEM,
|
// MA_MAP_SUBITEM: MA_MAP_SUBITEM,
|
||||||
MA_SYSSET: MA_SYSSET,
|
// MA_SYSSET: MA_SYSSET,
|
||||||
ES_CARINFO: ES_CARINFO,
|
// ES_CARINFO: ES_CARINFO,
|
||||||
ES_EXAMPOINTDETAIL: ES_EXAMPOINTDETAIL,
|
// ES_EXAMPOINTDETAIL: ES_EXAMPOINTDETAIL,
|
||||||
MA_MARKRULESET: MA_MARKRULESET,
|
// MA_MARKRULESET: MA_MARKRULESET,
|
||||||
MA_CDSBINFO: MA_CDSBINFO,
|
// MA_CDSBINFO: MA_CDSBINFO,
|
||||||
MA_ITEMINFO: MA_ITEMINFO,
|
// MA_ITEMINFO: MA_ITEMINFO,
|
||||||
MA_T_CARPARMSET: MA_T_CARPARMSET,
|
// MA_T_CARPARMSET: MA_T_CARPARMSET,
|
||||||
ES_CAR_VIDEO_PARAMETER: ES_CAR_VIDEO_PARAMETER,
|
// ES_CAR_VIDEO_PARAMETER: ES_CAR_VIDEO_PARAMETER,
|
||||||
USER: USER,
|
// USER: USER,
|
||||||
USERLIST: USERLIST,
|
// USERLIST: USERLIST,
|
||||||
IpConfigTable: IpConfigTable,
|
// IpConfigTable: IpConfigTable,
|
||||||
DeviceInfoTable: DeviceInfoTable,
|
// DeviceInfoTable: DeviceInfoTable,
|
||||||
CommonConstants: accountTable
|
// CommonConstants: accountTable
|
||||||
}
|
// }
|
||||||
|
export const ParameterPlatform = new Map([
|
||||||
|
['MA_MARKRULE', MA_MARKRULE],
|
||||||
|
['MA_SYSTEMPARM', MA_SYSTEMPARM],
|
||||||
|
['MA_MAP_COLLECT', MA_MAP_COLLECT],
|
||||||
|
['MA_MAP_COLLECT_SHAPE', MA_MAP_COLLECT_SHAPE],
|
||||||
|
['MA_MAP_ITEMCLASS', MA_MAP_ITEMCLASS],
|
||||||
|
['MA_MAP_POINT', MA_MAP_POINT],
|
||||||
|
['MA_MAP_POINT_ITEM', MA_MAP_POINT_ITEM],
|
||||||
|
['MA_MAP_ROAD', MA_MAP_ROAD],
|
||||||
|
['MA_MAP_ROAD_LANE', MA_MAP_ROAD_LANE],
|
||||||
|
['MAP_SUBITEM', MA_MAP_SUBITEM],
|
||||||
|
['MA_MAP_SUBITEM', MA_MAP_SUBITEM],
|
||||||
|
['MA_SYSSET', MA_SYSSET],
|
||||||
|
['ES_CARINFO', ES_CARINFO],
|
||||||
|
['ES_EXAMPOINTDETAIL', ES_EXAMPOINTDETAIL],
|
||||||
|
['MA_MARKRULESET', MA_MARKRULESET],
|
||||||
|
['MA_CDSBINFO', MA_CDSBINFO],
|
||||||
|
['MA_ITEMINFO', MA_ITEMINFO],
|
||||||
|
['MA_T_CARPARMSET', MA_T_CARPARMSET],
|
||||||
|
['ES_CAR_VIDEO_PARAMETER', ES_CAR_VIDEO_PARAMETER],
|
||||||
|
['USER', USER],
|
||||||
|
['USERLIST', USERLIST],
|
||||||
|
['IpConfigTable', IpConfigTable],
|
||||||
|
['DeviceInfoTable', DeviceInfoTable],
|
||||||
|
['CommonConstants', accountTable]
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
export const CenterMap: CenterTableMapType = {
|
// export const CenterMap: CenterTableMapType = {
|
||||||
ItemInfo: MA_ITEMINFO,
|
// ItemInfo: MA_ITEMINFO,
|
||||||
MarkRule: MA_MARKRULE,
|
// MarkRule: MA_MARKRULE,
|
||||||
SystemParm: MA_SYSTEMPARM,
|
// SystemParm: MA_SYSTEMPARM,
|
||||||
mapCollectList: MA_MAP_COLLECT,
|
// mapCollectList: MA_MAP_COLLECT,
|
||||||
mapCollectshapeList: MA_MAP_COLLECT_SHAPE,
|
// mapCollectshapeList: MA_MAP_COLLECT_SHAPE,
|
||||||
Map_Collect: MA_MAP_COLLECT,
|
// Map_Collect: MA_MAP_COLLECT,
|
||||||
Map_Collect_Shape: MA_MAP_COLLECT_SHAPE,
|
// Map_Collect_Shape: MA_MAP_COLLECT_SHAPE,
|
||||||
Map_ItemClass: MA_MAP_ITEMCLASS,
|
// Map_ItemClass: MA_MAP_ITEMCLASS,
|
||||||
Map_Point: MA_MAP_POINT,
|
// Map_Point: MA_MAP_POINT,
|
||||||
Map_Point_Item: MA_MAP_POINT_ITEM,
|
// Map_Point_Item: MA_MAP_POINT_ITEM,
|
||||||
Map_Road: MA_MAP_ROAD,
|
// Map_Road: MA_MAP_ROAD,
|
||||||
Map_Road_Lane: MA_MAP_ROAD_LANE,
|
// Map_Road_Lane: MA_MAP_ROAD_LANE,
|
||||||
Map_SubItem: MA_MAP_SUBITEM,
|
// Map_SubItem: MA_MAP_SUBITEM,
|
||||||
Sysset: MA_SYSSET,
|
// Sysset: MA_SYSSET,
|
||||||
CarInfo: ES_CARINFO,
|
// CarInfo: ES_CARINFO,
|
||||||
MarkRuleSet: MA_MARKRULE,
|
// MarkRuleSet: MA_MARKRULE,
|
||||||
Cdsbinfo: MA_CDSBINFO,
|
// Cdsbinfo: MA_CDSBINFO,
|
||||||
T_CarParmSet: MA_T_CARPARMSET,
|
// T_CarParmSet: MA_T_CARPARMSET,
|
||||||
}
|
// }
|
||||||
|
export const CenterMap = new Map([
|
||||||
|
['ItemInfo', MA_ITEMINFO],
|
||||||
|
['MarkRule', MA_MARKRULE],
|
||||||
|
['SystemParm', MA_SYSTEMPARM],
|
||||||
|
['mapCollectList', MA_MAP_COLLECT],
|
||||||
|
['mapCollectshapeList', MA_MAP_COLLECT_SHAPE],
|
||||||
|
['Map_Collect', MA_MAP_COLLECT],
|
||||||
|
['Map_Collect_Shape', MA_MAP_COLLECT_SHAPE],
|
||||||
|
['Map_ItemClass', MA_MAP_ITEMCLASS],
|
||||||
|
['Map_Point', MA_MAP_POINT],
|
||||||
|
['Map_Point_Item', MA_MAP_POINT_ITEM],
|
||||||
|
['Map_Road', MA_MAP_ROAD],
|
||||||
|
['Map_Road_Lane', MA_MAP_ROAD_LANE],
|
||||||
|
['Map_SubItem', MA_MAP_SUBITEM],
|
||||||
|
['Sysset', MA_SYSSET],
|
||||||
|
['CarInfo', ES_CARINFO],
|
||||||
|
['MarkRuleSet', MA_MARKRULE],
|
||||||
|
['Cdsbinfo', MA_CDSBINFO],
|
||||||
|
['T_CarParmSet', MA_T_CARPARMSET],
|
||||||
|
]);
|
||||||
Loading…
x
Reference in New Issue
Block a user