本文介绍在JavaScript中应用SQL语句的多种实现方式,包括通过服务器代理执行SQL、直接操作JavaScript对象数组以及封装Web SQL Database。文章提供了从服务器获取数据、对本地数组进行筛选分组及插入记录的代码示例,并探讨了局域网环境下使用SSL加密连接的安全性问题,旨在为前端开发者提供灵活的数据处理方案。
JavaScript SQL应用背景
例如,我们可以对JavaScript数组进行排序操作。
此外,还可以对数组数据进行筛选以及分组处理。
因此,在产生兴趣之后,
这种探索便一发不可收拾。
我编写了一个可以在JavaScript中应用的SQL库。
随后我又思考,为何不能直接用JavaScript连接数据库呢?
于是,我又制作了一个JavaScript直连SQL数据的类库。
接着,我想到其实还可以用SQL语句来操作HTML DOM模型。
再后来,我又看到了HTML5中对Web DB的实现。
因此,针对Web DB,即Chrome和Safari中SQLite的封装,
于是就有了以下应用场景:
服务器端SQL执行
1. 从服务器上获取数据、执行SQL操作:
代码如下:
_SQLPROXYURL_ = 'SQLProxy.php';
_SQLSERVERHOST_ = 'localhost';
_SQLUSERNAME_ = 'root';
_SQLPASSWORD_ = '';
_SQLDATABASE_ = 'HotelManageMent';
var result = "select * from Room".OnServer().executeSQL();
for(var i=0; i<result.length; i++) {
//do something here.... using result[i];
} 本地数组SQL操作
2. 操作Javascript Object Array 、执行SQL操作:
代码如下:
var Room = [
{
ID: 'bot',
name: 'test',
sex: true
}, {
ID: 2,
name: 'test8',
sex: true
}, {
ID: 3,
name: 'test5',
sex: false
}, {
ID: 4,
name: 'test2',
sex: true
}];
SQL = "select Max(id) as bid,Sum(id) as total from records where name like \"test%\" group by sex order by id desc,name asc";
var result = SQL.executeSQL();
for(var i=0; i<result.length; i++) {
//do something here.... using result[i];
};
"create table mytable".executeSQL();
for(var j=0; j<100; j++) {
"insert into mytable (id,name,sex) values(2,'zhangsan',true) ".executeSQL();
}; 安全性讨论
sql语句都写外面了。安全吗?
关于安全问题首先这本身不打算做互联网应用,面向局域网。其次数据库的连接有ssl加密,其实http也有ssl,再者。远程调用服务只是JSQL的四大模块之一。还有可以不经过服务来操作客户端objects array,浏览器的sqlite和网页的DOM。我这里的SQL只是代表一种语言规范,适合但不局限于后端的sql数据库,还有三个模块是面对前段的操作