暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

autojs之数据库

AutoJsPro教程 2021-03-26
1450

使用情景: 数据库


DDL

Data Definition Language

数据定义语言

数据库和表的操作都属于ddl, 比如: Create、Drop和Alter,

DDL所站的高度, 最低也比记录高一层


创建或打开数据库

    const TableName = "IMGDATA";
    // 表名: IMGDATA
    // 字段1 id 整数 主键 自增
    // 字段2 name 字符串 不可为空
    // 字段3 img BLOB
    let db = sqlite.open(
    "./data.db",
    { version: 1 },
    {
    onOpen: function (db) {
    db.execSQL(
    "CREATE TABLE IF NOT EXISTS " +
    TableName +
    "(" +
    "`id` INTEGER PRIMARY KEY AUTOINCREMENT, " +
    "`name` TEXT NOT NULL UNIQUE, " +
    "`img` BLOB" +
    ")"
    );
    },
    }
    );


    关闭数据库

      db.close();

      打印所有表

        let db = sqlite.open("./data.db");
        log("数据库所有表的信息: ", db.rawQuery("SELECT * FROM sqlite_master WHERE type='table'", null).all());



        删除表

          const TableName = "IMGDATA";
          let db = sqlite.open(
          "./data.db",
          { version: 1 },
          {
          onOpen: function (db) {
          db.execSQL("drop TABLE " + TableName);
          },
          }
          );


          DML

          Data Manipulation Language 

          数据操控语言

          操作的单位是记录, 增删改查都属于dml, 操作的单位是记录


          增加

            let img = images.read(files.join(files.getSdcardPath(), "test.jpg"));
            let r = db.insert(TableName, {
            name: "test",
            img: img,
            });
            log(r);

            删除

              log("删除name的值为test的记录: ", db.delete(TableName, "name = 'test'", null));


              修改

                // 修改符合条件name=test的记录, 字段name的改为测试
                log("修改: ", db.update(TableName, { name: "测试" }, "name = ?", ["test"]));
                log("修改后: ", db.rawQuery("SELECT * FROM " + TableName + " WHERE name = ?", ["测试"]).single());


                查询

                  log("所有数据: ", db.rawQuery("SELECT * FROM " + TableName, null).all());
                  log("第一个数据: ", db.rawQuery("SELECT * FROM " + TableName, null).single());


                  条件查询

                    log("条件查询: ", db.rawQuery("SELECT * FROM " + TableName + " WHERE name = ?", ["测试"]).single());


                    事务

                      const TableName = "IMGDATA";
                      let db = sqlite.open("./data.db");
                      db.transaction(function () {
                      db.update(TableName, { name: "测试改名字" }, "name = '测试'", null);
                      })
                      .on("begin", function (t) {
                      log("事务开始: ", t);
                      })
                      .on("commit", function (t) {
                      log("事务完成: ", t);
                      })
                      .on("rollback", function (t) {
                      log("事务回滚: ", t);
                      })
                      .on("end", function (t) {
                      log("事务结束: ", t);
                      })
                      .on("error", function (e) {
                      console.error(e);
                      });
                      db.close();

                      微信公众号 AutoJsPro教程



                      QQ群


                      747748653



                      文章转载自AutoJsPro教程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论