在uniapp中操作SQLite数据库,通常需要使用uni的API uni.openDatabase
来打开或创建数据库,然后使用 uni.executeSql
执行SQL语句。以下是一个简单的例子:
// 打开或创建数据库
const dbName = 'myDatabase.db';
const dbVersion = '1.0';
const dbDesc = 'My Database';
const dbSize = 10 * 1024 * 1024; // 10MB
uni.openDatabase({
name: dbName,
version: dbVersion,
description: dbDesc,
size: dbSize,
success: function () {
console.log('数据库创建或打开成功');
},
fail: function (err) {
console.error('数据库创建或打开失败:', err);
}
});
// 创建表
function createTable() {
const createTableSQL = `CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)`;
uni.executeSql({
dbName: dbName,
sql: createTableSQL,
success: function (res) {
console.log('表创建成功:', res);
},
fail: function (err) {
console.error('表创建失败:', err);
}
});
}
// 插入数据
function insertData(name, age) {
const insertSQL = `INSERT INTO user (name, age) VALUES (?, ?)`;
uni.executeSql({
dbName: dbName,
sql: insertSQL,
bind: [name, age],
success: function (res) {
console.log('数据插入成功:', res);
},
fail: function (err) {
console.error('数据插入失败:', err);
}
});
}
// 更新数据库版本(版本升级时执行)
function updateDatabase(newVersion) {
const updateSQL = `ALTER TABLE user ADD COLUMN email TEXT`;
uni.upgradeDatabase({
dbName: dbName,
version: newVersion,
success: function () {
console.log('数据库更新成功');
// 在这里执行新版本需要的SQL操作
uni.executeSql({
dbName: dbName,
sql: updateSQL,
success: function () {
console.log('表结构更新成功');
},
fail: function (err) {
console.error('表结构更新失败:', err);
}
});
},
fail: function (err) {
console.error('数据库更新失败:', err);
}
});
}
// 使用示例
createTable();
insertData('张三', 28);
// 假设数据库需要更新,版本升级
updateDatabase('2.0');
在这个例子中,我们首先使用 uni.openDatabase
创建或打开一个名为 myDatabase.db
的数据库。然后定义了一个创建表的函数 createTable
,该函数使用 uni.executeSql
执行创建表的SQL语句。插入数据和更新数据库版本的函数也类似。
请注意,在真实应用中,你需要处理好错误和异常情况,并确保在适当的时候关闭数据库连接。此外,SQLite操作通常应在应用的特定线程(如主线程)中进行,避免在数据库操作期间造成UI线程的阻塞。