html5 js mysql数据库_js+html5操作sqlite数据库的方法

//copyright by lanxyou lanxyou[at]gmail.com

var lanxDB=function(dbname){

var db=openDatabase(dbname,'1.0.0','',65536);

return{

//返回数据库名

getDBName:function(){

return dbname;

},

//初始化数据库,如果需要则创建表

init:function(tableName,colums){

this.switchTable(tableName);

colums.length>0?this.createTable(colums):'';

return this;

},

//创建表,colums:[name:字段名,type:字段类型]

createTable:function(colums){

var sql="CREATE TABLE IF NOT EXISTS " + this._table ;

var t;

if (colums instanceof Array && colums.length>0){

t=[];

for (var i in colums){

t.push(colums[i].name+' '+colums[i].type);

}

t=t.join(', ');

}else if(typeof colums=="object"){

t+=colums.name+' '+colums.type;

}

sql=sql+" ("+t+")";

var that=this;

db.transaction(function (t) {

t.executeSql(sql) ;

})

},

//切换表

switchTable:function(tableName){

this._table=tableName;

return this;

},

//插入数据并执行回调函数,支持批量插入

//data为Array类型,每一组值均为Object类型,每一个Obejct的属性应为表的字段名,对应要保存的值

insertData:function(data,callback){

var that=this;

var sql="INSERT INTO "+this._table;

if (data instanceof Array && data.length>0){

var cols=[],qs=[];

for (var i in data[0]){

cols.push(i);

qs.push('?');

}

sql+=" ("+cols.join(',')+") Values ("+qs.join(',')+")";

}else{

return false;

}

var p=[],

d=data,

pLenth=0,

r=[];

for (var i=0,dLength=d.length;i

var k=[];

for (var j in d[i]){

k.push(d[i][j]);

}

p.push(k);

}

var queue=function(b,result){

if (result){

r.push(result.insertId ||result.rowsAffected);

}

if (p.length>0){

db.transaction(function (t) {

t.executeSql(sql,p.shift(),queue,that.onfail);

})

}else{

if (callback){

callback.call(this,r);

}

}

}

queue();

},

_where:'',

//where语句,支持自写和以对象属性值对的形式

where:function(where){

if (typeof where==='object'){

var j=this.toArray(where);

this._where=j.join(' and ');

}else if (typeof where==='string'){

this._where=where;

}

return this;

},

//更新数据,data为属性值对形式

updateData:function(data,callback){

var that=this;

var sql="Update "+this._table;

data=this.toArray(data).join(',');

sql+=" Set "+data+" where "+this._where;

this.doQuery(sql,callback);

},

//根据条件保存数据,如果存在则更新,不存在则插入数据

saveData:function(data,callback){

var sql="Select * from "+this._table+" where "+this._where;

var that=this;

this.doQuery(sql,function(r){

if (r.length>0){

that.updateData(data,callback);

}else{

that.insertData([data],callback);

}

});

},

//获取数据

getData:function(callback){

var that=this;

var sql="Select * from "+that._table;

that._where.length>0?sql+=" where "+that._where:"";

that.doQuery(sql,callback);

},

//查询,内部方法

doQuery:function(sql,callback){

var that=this;

var a=[];

var bb=function(b,result){

if (result.rows.length){

for (var i=0;i

a.push(result.rows.item(i));

}

}else{

a.push(result.rowsAffected);

}

if (callback){

callback.call(that,a);

}

}

db.transaction(function (t) {

t.executeSql(sql,[],bb,that.onfail) ;

})

},

//根据条件删除数据

deleteData:function(callback){

var that=this;

var sql="delete from "+that._table;

that._where.length>0?sql+=" where "+that._where:'';

that.doQuery(sql,callback);

},

//删除表

dropTable:function(){

var sql="DROP TABLE IF EXISTS "+this._table;

this.doQuery(sql);

},

_error:'',

onfail:function(t,e){

this._error=e.message;

console.log('----sqlite:'+e.message);

},

toArray:function(obj){

var t=[];

obj=obj || {};

if (obj){

for (var i in obj){

t.push(i+"='"+obj[i]+"'");

}

}

return t;

}

}

}

/*

examples:

var db=new lanxDB('testDB');

db.init('channel_list',[{name:'id',type:'integer primary key autoincrement'},{name:'name',type:'text'},{name:'link',type:'text'},{name:'cover',type:'text'},{name:'updatetime',type:'integer'},{name:'orders',type:'integer'}]);

db.init('feed_list',[{name:'parentid',type:'integer'},{name:'feed',type:'text'}]);

db.switchTable('channel_list').insertData([{name:'aa',link:'ss',updatetime:new Date().getTime()},{name:'bb',link:'kk',updatetime:new Date().getTime()}]);

db.where({name:'aa'}).getData(function(result){

console.log(result);//result为Array

});

db.where({name:'aa'}).deleteData(function(result){

console.log(result[0]);//删除条数

});

db.where({name:'bb'}).saveData({link:'jj'},function(result){

console.log(result);//影响条数

})

})

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在CSDN上,有许多关于使用JavaScript读取数据库的资源和教程。JavaScript是一种常用的脚本语言,可以运行在浏览器端和服务器端。在读取数据库时,可以使用JavaScript与数据库进行交互,通过适当的API或库实现数据的获取和处理。 首先,需要引入适用于JavaScript的数据库操作库。在前端开发中,常用的库有IndexedDB和Web SQL,这些库可以直接通过JavaScript在浏览器中进行数据库读取操作。在后端开发中,常用的库有MongoDB、MySQL和Oracle等。根据具体的需求和开发环境,选择合适的库进行数据库读取。 引入库后,可以通过一些API或方法实现数据库读取。例如,在前端中使用IndexedDB时,可以使用open()函数打开数据库,使用transaction()函数开启一个事务,再利用objectStore()函数获取数据存储对象,进而使用get()或getAll()函数获取指定的数据。而在后端中,可以使用相应的连接库,例如使用Node.js连接MySQL时,可以使用mysql模块进行数据库操作。首先需要建立一个连接,然后通过query()函数执行SQL命令,最后使用回调函数获取查询结果。 在读取数据库时,需要注意保护数据库的安全性,例如使用参数化查询或预编译语句来防止SQL注入攻击,在前端中可以使用Web Storage API来对数据进行加密,以保护用户隐私。 总之,使用JavaScript读取数据库可以通过引入适用的库和API进行操作,根据前后端开发环境的不同选择合适的方式。读取数据库时,需要注意数据安全性,以保护用户的信息。在CSDN上可以找到大量相关的资源和教程,供开发者学习和参考。 ### 回答2: csdn是一个技术社区,提供了许多关于编程、开发和相关技术的内容。通过csdn,我们可以学习到如何使用JavaScript来读取数据库。 首先,我们需要了解JavaScript中使用的数据库技术。常见的有MySQL、MongoDB、SQLite等。我们可以选择适合我们项目需求的数据库。 在JavaScript中,可以使用以下几种方式来读取数据库: 1. 使用Node.js和适当的数据库驱动程序:Node.js是一个用于服务器端编程的JavaScript运行环境。我们可以使用Node.js提供的模块和合适的数据库驱动程序来读取数据库中的数据。 2. 使用AJAX和服务器端脚本语言:我们可以通过AJAX发送一个HTTP请求到服务器端脚本语言(如PHP、Python或Ruby等),然后使用服务器端脚本语言连接数据库并返回数据给前端JavaScript。 3. 使用Web浏览器内置的Web SQL数据库:Web SQL是一种在Web浏览器中内置的关系型数据库。我们可以使用JavaScript和适当的Web SQL API来读取和操作数据库。 总的来说,使用JavaScript读取数据库需要使用适当的数据库技术和相应的API或驱动程序。我们可以根据具体的需求选择合适的方法来实现数据读取操作。在csdn上,我们可以找到丰富的教程和文章,帮助我们更深入地学习和掌握JavaScript读取数据库的技巧和应用。 ### 回答3: CSDN是国内知名的编程技术社区,提供了丰富的IT资讯、技术文章、学习资源等。在CSDN中,我们可以通过使用JavaScript来读取数据库。 JavaScript是一种脚本语言,可以在网页中直接嵌入使用。通过JavaScript,我们可以与数据库进行交互,并读取其中的数据。 在阅读数据库之前,我们首先需要连接到数据库。如果我们使用的是MySQL数据库,可以使用Node.js提供的MySQL模块进行连接。通过以下代码可以建立数据库连接: ``` const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'database_name' }); connection.connect((err) => { if (err) throw err; console.log('Connected to the database!'); }); ``` 连接成功后,我们可以使用SQL查询语句来读取数据库中的数据。以下是一个示例代码,使用了SELECT语句来读取数据库中的数据,并将结果打印输出: ``` connection.query('SELECT * FROM table_name', (err, results) => { if (err) throw err; console.log(results); }); ``` 上述代码中的`table_name`是你所要读取的数据库中的表名,通过`SELECT *`语句可以选择全部数据。如果你需要指定读取的字段,可以将`*`替换为特定的字段名。 通过这样的方式,我们就可以使用JavaScript在CSDN中读取数据库的数据了。当然,在具体的实践中,还需要根据自己所使用的数据库类型和具体需求,选择相应的JavaScript库或框架进行读取操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值