autojs使用nodejs调用sqlite数据库

简介: autojs先加载nodejs, 导入SQLiteDatabase, nodejs再去调用SQLiteDatabase

牙叔教程 简单易懂

依赖

"nodejs";

require("rhino").install();

const { device } = require("device");

const path = require("path");

const fs = require("fs");

const util = require("util");

const SQLiteDatabase = android.database.sqlite.SQLiteDatabase;

创建数据库

let dir = device.externalStorageDirectory; // /storage/emulated/0

let dbPath = path.join(dir, "bullet_comment.db"); // /storage/emulated/0/bullet_comment.db

let db = SQLiteDatabase.openOrCreateDatabase(dbPath, null);


创建表

async function createTable(db) {

 let CREATE_Table = `CREATE TABLE IF NOT EXISTS dou_yin_bullet_comment_table(

 'id' INTEGER PRIMARY KEY AUTOINCREMENT,

 'name' TEXT NOT NULL,

 'comment' TEXT,

 'level' INTEGER,

 'complete_comment' TEXT UNIQUE,

 'ts' TIMESTAMP DEFAULT CURRENT_TIMESTAMP

) `;

 db.execSQL(CREATE_Table); //创建用户表

}


增加一条数据

function insertItem(db, item) {

 let sql =

   "INSERT OR REPLACE INTO dou_yin_bullet_comment_table (name, comment, level, complete_comment) VALUES (?, ?, ?, ?)";

 db.beginTransaction();

 db.execSQL(sql, [item.name, item.comment, item.level, item.complete_comment]);

 db.setTransactionSuccessful();

 db.endTransaction();

}

增加多条数据

async function insertItems(db, items) {

 for (let i = 0; i < items.length; i++) {

   console.log("i = " + i);

   insertItem(db, items[i]);

   await sleep(1000);

 }

}

增加多条数据2

async function insertItemsByStatement(db, items) {

 let sql =

   "INSERT OR REPLACE INTO dou_yin_bullet_comment_table (name, comment, level, complete_comment) VALUES (?, ?, ?, ?)";

 db.beginTransaction();

 let statement = db.compileStatement(sql);

 for (let i = 0; i < items.length; i++) {

   let item = items[i];

   statement.bindString(1, item.name);

   statement.bindString(2, item.comment);

   statement.bindLong(3, item.level);

   statement.bindString(4, item.complete_comment);

   statement.execute();

   statement.clearBindings();

 }


 db.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交。

 db.endTransaction();

}

查询所有数据

function queryItems(db) {

 let query = "SELECT * FROM dou_yin_bullet_comment_table";

 let cursor = db.rawQuery(query, null);

 cursor.moveToFirst();

 let bulletComments = [];

 while (!cursor.isAfterLast()) {

   let bulletComment = {

     id: cursor.getInt(0),

     name: cursor.getString(1),

     comment: cursor.getString(2),

     level: cursor.getInt(3),

     complete_comment: cursor.getString(4),

     ts: cursor.getString(5),

   };

   bulletComments.push(bulletComment);

   cursor.moveToNext();

 }

 cursor.close();

 return bulletComments;

}


查询指定数据

function queryItemsByTs(db, count) {

 let sql = "SELECT * FROM dou_yin_bullet_comment_table ORDER BY ts DESC LIMIT " + count;

 db.beginTransaction();

 let cursor = db.rawQuery(sql, null);

 cursor.moveToFirst();

 let bulletComments = [];

 while (!cursor.isAfterLast()) {

   let bulletComment = {

     id: cursor.getInt(0),

     name: cursor.getString(1),

     comment: cursor.getString(2),

     level: cursor.getInt(3),

     complete_comment: cursor.getString(4),

     ts: cursor.getString(5),

   };

   bulletComments.push(bulletComment);

   cursor.moveToNext();

 }

 cursor.close();

 return bulletComments;

}


环境


设备: 小米11pro
Android版本: 12
Autojs版本: 9.3.11


名人名言


思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问 --- 牙叔教程


声明


部分内容来自网络 本教程仅用于学习, 禁止用于其他用途


相关文章
|
14天前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
25 3
C#winform中使用SQLite数据库
|
11天前
|
SQL JavaScript 前端开发
node.js使用Sequelize操作数据库
node.js使用Sequelize操作数据库
|
19天前
|
SQL 数据库 数据库管理
SQLite数据库操作
【7月更文挑战第31天】SQLite数据库操作
17 6
|
25天前
|
SQL 存储 PHP
PHP中使用SQLite数据库
SQLite是一种轻量级数据库引擎,数据以文件存储,支持SQL操作。PHP可连接SQLite执行CRUD操作。
|
1月前
|
SQL 存储 数据挖掘
深入了解SQLite3命令:小巧强大的数据库工具
SQLite3是轻量级数据库工具,适用于嵌入式设备和数据分析。它提供交互式shell,无需服务器,易于部署。常用命令如`.schema`显示表结构,`.mode`设置输出格式。示例包括创建数据库`mydatabase.db`,创建表`users`,插入数据并查询。注意动态类型系统、性能限制及SQL注入安全。适合轻量级数据存储和管理。
|
2月前
|
数据库 Android开发 数据安全/隐私保护
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
116 2
|
1月前
|
存储 Java Linux
SQLite3数据库的安装与使用教程
SQLite3数据库的安装与使用教程
|
2月前
|
编译器 API 数据库
技术好文共享:(xxxx)十一:SQLite3的db数据库解密(三)数据库在线备份
技术好文共享:(xxxx)十一:SQLite3的db数据库解密(三)数据库在线备份
96 0
|
2月前
|
存储 数据库 Android开发
数据库SQLite3总结
数据库SQLite3总结
|
2月前
|
存储 缓存 数据库
Android之SQLite数据库使用详解
Android之SQLite数据库使用详解