这里是一个使用Auto.js封装SQLite数据库操作的示例类。这个类包含了创建数据库、表格操作、插入数据、查询数据、更新数据和删除数据等方法,可以方便地调用这些操作。
// SQLite数据库封装类 function DatabaseHelper(dbName) { // 设置数据库路径 this.dbPath = "/sdcard/xxxx/ " + dbName + ".db"; this.db = sqlite.open(this.dbPath); // 创建表 this.createTable = function (tableName, columns) { var columnsDef = []; for (var i = 0; i < columns.length; i++) { columnsDef.push(columns[i].name + " " + columns[i].type); } var sql = "CREATE TABLE IF NOT EXISTS " + tableName + " (" + columnsDef.join(", ") + ");"; this.db.execSQL(sql); }; // 查询表是否存在 this.isTableExists = function (tableName) { var sql = "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?"; var cursor = this.db.rawQuery(sql, [tableName]); var exists = false; if (cursor.moveToFirst()) { exists = cursor.getInt(0) > 0; } cursor.close(); return exists; }; // 插入数据 this.insert = function (tableName, values) { var columns = []; var placeholders = []; var valuesArr = []; for (var key in values) { if (values.hasOwnProperty(key)) { columns.push(key); placeholders.push("?"); valuesArr.push(values[key]); } } var sql = "INSERT INTO " + tableName + " (" + columns.join(", ") + ") VALUES (" + placeholders.join(", ") + ");"; this.db.execSQL(sql, valuesArr); }; // 查询数据(带分页功能) this.query = function (tableName, columns, whereClause, whereArgs, limit, offset) { columns = columns || ["*"]; whereClause = whereClause || ""; whereArgs = whereArgs || []; limit = limit || null; offset = offset || null; var sql = "SELECT " + columns.join(", ") + " FROM " + tableName; if (whereClause) sql += " WHERE " + whereClause; if (limit !== null) sql += " LIMIT " + limit; if (offset !== null) sql += " OFFSET " + offset; var cursor = this.db.rawQuery(sql, whereArgs); var results = []; while (cursor.moveToNext()) { var row = {}; for (var i = 0; i < columns.length; i++) { row[columns[i]] = cursor.getString(i); } results.push(row); } cursor.close(); return results; }; // 更新数据 this.update = function (tableName, values, whereClause, whereArgs) { var columns = []; var valuesArr = []; for (var key in values) { if (values.hasOwnProperty(key)) { columns.push(key + " = ?"); valuesArr.push(values[key]); } } var sql = "UPDATE " + tableName + " SET " + columns.join(", ") + " WHERE " + whereClause; this.db.execSQL(sql, valuesArr.concat(whereArgs)); }; // 删除数据 this.delete = function (tableName, whereClause, whereArgs) { var sql = "DELETE FROM " + tableName + " WHERE " + whereClause; this.db.execSQL(sql, whereArgs); }; // 删除数据库文件 this.deleteDatabase = function () { this.close(); var file = new java.io.File(this.dbPath); return file.exists() && file.delete(); }; // 关闭数据库 this.close = function () { this.db.close(); }; } // 使用示例 (function () { var dbHelper = new DatabaseHelper("my_database"); // 检查表是否存在,若不存在则创建 if (!dbHelper.isTableExists("users")) { dbHelper.createTable("users", [ { name: "id", type: "INTEGER PRIMARY KEY AUTOINCREMENT" }, { name: "name", type: "TEXT" }, { name: "age", type: "INTEGER" } ]); console.log("创建表: users"); } // 插入数据 dbHelper.insert("users", { name: "Alice", age: 25 }); dbHelper.insert("users", { name: "Bob", age: 30 }); dbHelper.insert("users", { name: "Charlie", age: 35 }); console.log("插入数据完成"); // 查询数据,分页查询:从第0条记录开始,获取2条数据 var users = dbHelper.query("users", ["id", "name", "age"], "", [], 2, 0); console.log("查询数据:"); for (var i = 0; i < users.length; i++) { console.log(users[i]); } // 更新数据 dbHelper.update("users", { age: 28 }, "name = ?", ["Alice"]); console.log("更新数据完成"); // 查询更新后的数据 users = dbHelper.query("users", ["id", "name", "age"]); console.log("更新后查询所有数据:"); for (var i = 0; i < users.length; i++) { console.log(users[i]); } // 删除一条数据 dbHelper.delete("users", "name = ?", ["Bob"]); console.log("删除一条数据完成"); // 查询删除后的数据 users = dbHelper.query("users", ["id", "name", "age"]); console.log("删除后查询所有数据:"); for (var i = 0; i < users.length; i++) { console.log(users[i]); } // 删除数据库 var isDeleted = dbHelper.deleteDatabase(); console.log("数据库删除成功: " + isDeleted); })();
声明:本站部分资源搜集自网络,相关版权归版权持有人所有,如有侵权,请联络我们,本站会尽快删除。