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

}

你可能感兴趣的:(vue中 websql)