赞
踩
- // 假设有一个对象数组,对象中包含嵌套对象
- const objectsArray = [
- {
- parentObject: {
- id: 1,
- name: 'Parent 1',
- // 其他父对象属性
- },
- childObject: {
- id: 11,
- parentId: 1,
- name: 'Child 1 of Parent 1',
- // 其他子对象属性
- }
- },
- // 其他对象...
- ];
-
- // 定义插入父对象和子对象的函数
- function insertParentAndChild(db, parent, child) {
- // 插入父对象
- db.executeSql(`INSERT INTO parent_table (id, name) VALUES (?, ?);`, [parent.id, parent.name]).then(() => {
- // 插入子对象,引用父对象的ID
- db.executeSql(`INSERT INTO child_table (id, parentId, name) VALUES (?, ?, ?);`, [child.id, parent.id, child.name]).then(() => {
- console.log('Inserted successfully');
- }).catch(e => {
- console.error('Child insert error:', e);
- });
- }).catch(e => {
- console.error('Parent insert error:', e);
- });
- }
-
- // 使用uniapp的数据库API
- const db = uni.openDatabase();
-
- // 遍历数组并插入数据
- objectsArray.forEach(obj => {
- insertParentAndChild(db, obj.parentObject, obj.childObject);
- });
- // 假设有一个数组arrayData,它包含对象,对象中又嵌套了对象
- // 例如:
- // arrayData = [
- // { id: 1, name: 'Tom', profile: { age: 25, city: 'New York' } },
- // { id: 2, name: 'Jerry', profile: { age: 30, city: 'Los Angeles' } }
- // ];
-
- // 使用uniapp plus.sqlite插入数组中的对象,对象包含嵌套对象,并且通过主外键关联
- function insertData(db, arrayData) {
- db.transaction(function(tx) {
- // 创建主表和外键表
- tx.executeSql('CREATE TABLE IF NOT EXISTS main_table (id INTEGER PRIMARY KEY, name TEXT)');
- tx.executeSql('CREATE TABLE IF NOT EXISTS foreign_table (id INTEGER PRIMARY KEY, age INTEGER, city TEXT, main_id INTEGER, FOREIGN KEY(main_id) REFERENCES main_table(id))');
-
- // 循环插入数据
- arrayData.forEach(function(item) {
- // 插入主表数据
- tx.executeSql('INSERT INTO main_table (name) VALUES (?)', [item.name]);
- // 获取刚插入的主键ID
- tx.executeSql('SELECT last_insert_rowid() as lastId', [], function(tx, result) {
- var lastId = result.rows.item(0).lastId;
- // 插入外键表数据,并关联主键ID
- tx.executeSql('INSERT INTO foreign_table (age, city, main_id) VALUES (?, ?, ?)', [item.profile.age, item.profile.city, lastId]);
- });
- });
- });
- }
-
- // 使用示例
- var db = plus.sqlite.openDatabase({name: 'mydb'});
- insertData(db, arrayData);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。