vue中 websql

新建一个weqsl.js文件  mian.js中添加import Websqldbfrom './assets/js/websql' ;Vue.use(Websqldb)

关于wesql有一个蛋疼的地方就是,你在vue页面中无法获得weqsl中定义操作数据库方法return的数据

当然 node.js中也是一样,,所以,,只能用promise中reslove操作了,至少本人这样认为滴


main.js中如下

export default {

install(Vue){

var dbname='websql';/*数据库名*/

    var version ='1.0'; /*数据库版本*/

    var dbdesc ='websql'; /*数据库描述*/

    var dbsize =2*1024*1024; /*数据库大小*/

    var dataBase =null; /*暂存数据库对象*/

/*数据库中的表单名*/

    var websqlTable ="websqlTable";

    //drop table friend 删除表

//打开数据库

    dataBase = window.openDatabase(dbname, version, dbdesc, dbsize,function() {});

}

Vue.prototype.websqlOpenDB=function () {

console.log("数据库打开成功")

return dataBase;

}

//

这里添加操作数据库的方法

}


关于操作websql数据库,嗯,,时间久远,不知道理解的对不对,那就在我的代码里复制吧

//新建firend表

Vue.prototype.frienddbbcreat=function () {

var tableName="friend"+localStorage.getItem("userid")

var creatTableSQL ='CREATE TABLE IF  NOT EXISTS '+ tableName +' (userid number,text text,time text,type text,photo text,name text,PRIMARY KEY (`userid`))';

  dataBase.transaction(function (ctx,result) {

ctx.executeSql(creatTableSQL,[],function(ctx,result){

console.log("表创建成功 " + tableName);

    },function(tx, error){

console.log('创建表失败:' + tableName + error.message);

    });

  });

};


//friend表插入数据

Vue.prototype.frienddbinsert=function (obj) {

var tableName="friend"+localStorage.getItem("userid");

  var insterTableSQL ='INSERT INTO ' + tableName +' (userid,text,time,type,photo,name) VALUES (?,?,?,?,?,?)';

  dataBase.transaction(function (ctx) {

ctx.executeSql(insterTableSQL,[obj.userid,obj.text,obj.time,obj.type,obj.photo,obj.name],function (ctx,result){

console.log("插入" + tableName  +"成功");

      },

      function (tx, error) {

console.log('插入'+ tableName  +'失败: ' + error.message);

      });

  });

};

//friend表更新数据1

Vue.prototype.frienddbupdate=function (obj) {

var tableName="friend"+localStorage.getItem("userid")

var sql ='UPDATE ' + tableName +' SET text = ? ,time = ?, type = ?  WHERE userid = ?';

  dataBase.transaction(function (ctx,result) {

ctx.executeSql(sql,[obj.text,obj.time,obj.type,obj.userid],function(ctx,result){

console.log("更新成功 " + tableName + name);

    },function(tx, error){

console.log('更新失败:' + tableName  + name + error.message);

    });

  });

};


//通过userid从chat表获取数据

Vue.prototype.chatget=function (userid) {

var tableName="chat"+localStorage.getItem("userid");

  var sql ='SELECT * FROM ' + tableName +' WHERE send = ?  OR  receive = ? order by time asc'

  var pp =new Promise(function (resolve,reject) {

dataBase.transaction(function (ctx) {

ctx.executeSql(sql,[userid,userid],function (ctx,result){

resolve(result)

},

        function (tx, error) {

console.log('chatget查询失败: ' + error.message);

          reject(error)

});

    });

  });

  return pp

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,141评论 0 13
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,091评论 0 3
  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 8,109评论 1 4
  • 本文是lhyt本人原创,希望用通俗易懂的方法来理解一些细节和难点。转载时请注明出处。文章最早出现于本人github...
    lhyt阅读 6,577评论 0 4
  • 自从学会曲径通幽后,下了好几部电影来看。继续讲香港电影。这次要讲的是一部未在国内公开上演的惊悚悬疑三级片《踏血寻梅...
    俗世迷途小書僮阅读 1,313评论 0 0