uni-app 急需sqlite插件的封装
uni-app 急需sqlite插件的封装
官方的文档写的太简洁了,本人js水平也有限,sqlite貌似都是异步的,希望大佬们封装一个插件给我们这些萌新。
万分感谢!
内置了啊:https://www.html5plus.org/doc/zh_cn/sqlite.html
在hello uni-app里的接口示例里也有sqlite的示例源码
示例源码只是简单的业务,不可能每个页面都写一大堆sql语句吧,我的意思是类似java里面的ibatis,封装成一个插件,避免重复编写sql。目前在尝试Promise进行封装,但是本人js萌新,不太会。。。。
还有就是同时处理多个业务时,如何做到数据库的及时开启或关闭
回复 9***@qq.com: 解决了吗?我也有这方面的业务需要
楼主解决了么…
楼主解决了么
在hello uni-app里的接口示例里也有sqlite的示例源码…我试了,不行。报plus没有啥的,我选的,运行,内置浏览器。
只能在app上运行
hello的没有事务的例子
在uni-app中封装一个SQLite插件,可以通过使用uni-app
官方提供的uni.db
API来实现,这个API封装了对SQLite的操作,使得我们可以在跨平台应用中方便地使用SQLite数据库。以下是一个简单的SQLite插件封装示例,这个封装将提供基本的数据库操作方法,如打开数据库、执行SQL语句和查询数据。
首先,我们需要创建一个新的JavaScript文件,例如sqlitePlugin.js
,然后在其中封装我们的SQLite操作。
// sqlitePlugin.js
class SQLitePlugin {
constructor(dbName) {
this.dbName = dbName;
this.db = null;
}
// 打开数据库
async openDB() {
if (!this.db) {
try {
this.db = await uni.db.open({
name: this.dbName,
storeAs: 'default',
success: () => {
console.log('Database opened successfully');
},
fail: (err) => {
console.error('Failed to open database:', err);
}
});
} catch (error) {
console.error('Error opening database:', error);
}
}
return this.db;
}
// 执行SQL语句
async execute(sql, params = []) {
try {
const db = await this.openDB();
await db.exec({
sql,
params,
success: () => {
console.log('SQL executed successfully');
},
fail: (err) => {
console.error('Failed to execute SQL:', err);
}
});
} catch (error) {
console.error('Error executing SQL:', error);
}
}
// 查询数据
async query(sql, params = []) {
try {
const db = await this.openDB();
const result = await db.select({
sql,
params,
success: (res) => {
return res.result.rows;
},
fail: (err) => {
console.error('Failed to query data:', err);
return [];
}
});
return result;
} catch (error) {
console.error('Error querying data:', error);
return [];
}
}
}
// 使用示例
const myDB = new SQLitePlugin('myDatabase');
myDB.openDB().then(() => {
myDB.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)');
myDB.execute('INSERT INTO users (name) VALUES (?)', ['Alice']);
myDB.query('SELECT * FROM users').then(rows => {
console.log(rows);
});
});
这个封装类SQLitePlugin
提供了打开数据库、执行SQL语句和查询数据的方法。你可以根据需要扩展这个类,添加更多的数据库操作方法。注意,这个示例中的错误处理比较简单,你可以根据实际需求进行更详细的错误处理。