更新记录
                                                                                                    
                                                    
                                                        1.0.8(2025-10-08)
                                                        
                                                    
                                                    
- 去除函数使用,改为调用对象方法
- 增加异步操作
                                                        1.0.7(2025-01-13)
                                                        
                                                    
                                                    优化
                                                                                                    
                                                    
                                                        1.0.6(2025-01-13)
                                                        
                                                    
                                                    优化鸿蒙编译
                                                                                                                                                    查看更多
                                                                                                
                                            
                                                                                                                                                        平台兼容性
                                                                                                                                                                                                                                                                                                                                uni-app(3.6.11)
                                                                                                                                                                                                                                    
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 | 
| √ | √ | - | - | √ | √ | 5.0 | √ | √ | 
                                                                                                                                                            
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 | 
| - | - | - | - | - | - | - | - | - | - | - | 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                uni-app x(3.6.10)
                                                                                                                                                                                                                                    
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 | 
| - | - | 5.0 | √ | √ | - | 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                其他
                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                            原生稳定sqlite数据库
功能
- 增删查,支持批量
- 分页查询(limit、orderBy、groupBy、having、where)
- 版本升级
- 支持事务控制
集成步骤
- 集成插件步骤请参考https://www.cnblogs.com/wenrisheng/p/18323027
- 如果鸿蒙有问题请联系作者,目前官方的鸿蒙插件有时候有编译问题
接口
import {
    UTSSqlite
} from "@/uni_modules/wrs-uts-sqlite"
let sqlite = new UTSSqlite()
sqlite.onSetCallback((resp) => {
    let opt = resp.opt
    switch (opt) {
        case "onCreate": {
            this.showMsg("创建数据库")
        }
        break;
        case "onOpen": {
            this.showMsg("打开数据库")
            // 创建表
            this.initTable()
        }
        break;
        case "onUpgrade": {
            var oldVersion = resp.oldVersion;
            var newVersion = resp.newVersion;
            this.showMsg("数据库升级,oldVersion:" + oldVersion + "  newVersion:" + newVersion);
        }
        break;
        default:
            break;
    }
})
var params = {};
params.dbName = "database.db";
// switch (uni.getSystemInfoSync().platform) {
//  case 'android':
//      params.dbName = "database.db";
//      break;
//  case 'ios':
//      // params.dbName = "database.sqlite";
//          params.dbName = "database.db";
//      break;
//  default:
//      break;
// }
params.version = 1; // 版本号,用以做数据库版本升级, 鸿蒙默认是0
sqlite.initDB(params);
                var params = {};
                params.sqls = [{
                        sql: "CREATE TABLE IF NOT EXISTS user (id integer PRIMARY KEY AUTOINCREMENT, account varchar(20), password varchar(20), address text, age integer default 0, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP)"
                    },
                    {
                        sql: "CREATE TABLE IF NOT EXISTS goods (id integer PRIMARY KEY AUTOINCREMENT, name varchar(20), address text, num integer default 0)"
                    },
                ];
                params.transaction = true;
let result = sqlite.createTable(params)
// 异步接口
sqlite.asynchCreateTable(params, (result)=>{
})
var params = {};
params.sqls = [{
        table: "user",
        keyValues: {
            account: "张三",
            password: "aabbcc123456",
            age: 20,
            update_time: "2023-08-20 08:24:00"
        }
    },
    {
        table: "user",
        keyValues: {
            account: "李四",
            password: "aab56",
            age: 25,
            update_time: "2023-08-21 08:24:00"
        }
    }
];
// params.transaction = false; // 是否开启事务
params.transaction = true;// 事务不支持鸿蒙
var result = sqlite.insert(params);
var jsonStr = JSON.stringify(result);
this.showMsg("增加结果:" + jsonStr);
// 异步接口
sqlite.asynchInsert(params, (result)=>{});
var params = {};
params.sqls = [{
    table: "user",
    where: "account=? and password=?",
    whereValues: ["张三", "aabbcc123456"]
}];
// params.transaction = false; // 是否开启事务
var result = sqlite.delete(params);// 事务不支持鸿蒙
var jsonStr = JSON.stringify(result);
this.showMsg("删除结果:" + jsonStr);
// 异步接口
sqlite.asynchDelete(params, (result)=>{});
var params = {};
params.sql = "select * from user";
// params.sql = "select account from user";
// params.sql = "select * from user where update_time BETWEEN '2023-08-20 08:23:00' AND '2023-08-20 08:25:00'";
var result = sqlite.query(params);
this.showMsg("query:\n" + JSON.stringify(result));
var columnNames = result.columnNames;
var data = result.data;
if (null != columnNames && columnNames.length > 0) {
    var result = "";
    var columnNamesStr = JSON.stringify(columnNames);
    var dataStr = JSON.stringify(data);
    result = result + "表字段:" + columnNamesStr + "\n";
    result = result + "表数据:" + dataStr + "\n";
} else {
    this.showMsg("查询所有表名为空");
}
// 异步接口
sqlite.asynchQuery(params, (result)=>{});
- 分页复杂查询(limit、orderBy、groupBy、having、where)
var params = {
    table: "user",
    orderBy: "account desc",
    limit:"1,3", // 第1条开始,返回3条数据
    where: "account = '张三'"
};
var result = sqlite.query(params);  
var columnNames = result.columnNames;
var data = result.data;
if (null != columnNames && columnNames.length > 0) {
    var result = "";
    var columnNamesStr = JSON.stringify(columnNames);
    var dataStr = JSON.stringify(data);
    result = result + "表字段:" + columnNamesStr + "\n";
    result = result + "表数据:" + dataStr + "\n";
    this.showMsg("查询结果:\n" + result);
} else {
    this.showMsg("查询结果为空");
}
var params = {};
params.sql = "select count(*) from user";
var result = sqlite.query(params);
var columnNames = result.columnNames;
var data = result.data;
if (null != columnNames && columnNames.length > 0) {
    var result = "";
    var columnNamesStr = JSON.stringify(columnNames);
    var dataStr = JSON.stringify(data);
    result = result + "表字段:" + columnNamesStr + "\n";
    result = result + "表数据:" + dataStr + "\n";
    this.showMsg("查询数据条数结果:\n" + result);
} else {
    this.showMsg("查询数据条数为空");
}
- 改(支持批量)
如果需要把某个表字段修改为设置null值,因为uts会把null值过滤掉,所以请使用自定义SQL语句execSQL来修改
var params = {};
params.sqls = [{
    table: "user",
    keyValues: {
        account: "zhangsan"
    },
    where: "password = ?",
    whereValues: ["aabbcc123456"]
}];
// params.transaction = false; // 是否开启事务,事务不支持鸿蒙
var result = sqlite.update(params);
var jsonStr = JSON.stringify(result);
this.showMsg("更新结果:" + jsonStr);
// 异步接口
sqlite.asynchUpdate(params, (result)=>{});
var params = {};
params.sqls = [{
    sql: "delete from user where account=?",
    values: ["张三"]
}]; 
let result = sqlite.execSQL(params)
this.showMsg("execSQL:" + JSON.stringify(result))
// 异步接口
sqlite.asynchExecSQL(params, (result)=>{
})
var params = {};
params.sqls = [{
    sql: "ALTER TABLE user ADD idcard text"
}];
sqlite.execSQL(params);
var params = {};
params.sql = "select name from sqlite_master where type='table' order by name";
var result = sqlite.query(params);
this.showMsg("查询所有表名结果:\n" + JSON.stringify(result));
var columnNames = result.columnNames;
var data = result.data;
if (null != columnNames && columnNames.length > 0) {
    var result = "";
    var columnNamesStr = JSON.stringify(columnNames);
    var dataStr = JSON.stringify(data);
    result = result + "表字段:" + columnNamesStr + "\n";
    result = result + "表数据:" + dataStr + "\n";
    this.showMsg("查询所有表名结果:\n" + result);
} else {
    this.showMsg("查询所有表名为空");
}
var path = sqlite.getDBPath();
if(path) {
    this.showMsg("数据库文件路径为:" + path);
} else {
    this.showMsg("数据库文件路径为NULL");
}
var isOpen = sqlite.isOpen();
if(isOpen) {
    this.showMsg("数据库已经打开");
} else {
    this.showMsg("数据库没有打开");
}
sqlite.close((resp)=>{
});