Heim >php教程 >php手册 >SQL语句在JavaScript中的应用

SQL语句在JavaScript中的应用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-13 11:35:401262Durchsuche

最近一直在用javascript在做项目 
可是做着做着 
感觉很多功能代码都是重复的。 

比如对javascript数组的排序 
还有对数组数据的删选以及分组 

所以,后来兴致以上来。 
一发不可收拾。 

写了一个能在javascript中应用的 SQL 库 

关于JSQL的开源问题

其实目前我已经在考虑这个问题

如果开源了,能有更多的好朋友一起来维护

 JSQL 目前的大概结构是这样的

 YESBRAIN - 命名空间
          |
         JSQL - 就是本类库啦!
              |
             Memory - JSQL 在 Objects array 中的应用封装
              |
             Server - JSQL 在 远端 SQL server 中的应用封装
              |
             Client - JSQL 在 浏览器 sqlite 中的应用封装
              |
             DOM - JSQL 在 对 W3C DOM 的的应用封装

有兴趣的朋友可以
QQ: 85302520 联系我
或者 Email : gongji at qq dot com

已经开放了
SVN checkout 地址:http://code.google.com/p/jsql-javascript/source/checkout

里面有几个例子和全部JSQL得源代码
 

 


后来又想,怎么不能用javascript直接连接数据库呢? 
又做了一个javascript直连Sql数据的类库 

后来,又想到其实还可以用SQL语句来操作HTML DOM模型 

再再再后来,又看到了HTML5中对web DB的实现 
所以对webDB,就是chrome和safari中的sqlite的封装 

于是乎就有了: 

1.从服务器上获取数据、执行SQL操作: 

 _SQLPROXYURL_ = 'SQLProxy.php';
 _SQLSERVERHOST_ = 'localhost';
 _SQLUSERNAME_ = 'root';
 _SQLPASSWORD_ = '';
 _SQLDATABASE_ = 'HotelManageMent';

 var result = "select * from Room".OnServer().executeSQL();
 for(var i=0; i      //do something here.... using result[i];
 }

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      //do something here.... using result[i];
 };
 "create table mytable".executeSQL();
 for(var j=0; j   "insert into mytable (id,name,sex) values(2,'zhangsan',true) ".executeSQL();
 };

操作Object Array
其实还可以这样操作:

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
   }];
"update Room set name = 'man' where sex=true".executeSQL();

支持的SQL语句有 SELECT INSERT UPDATE DELETE CREATE TABLE DROP TABLE

3.上回说道我发现DOM其实也可以用SQL操作
  比方说,你可以直接插入100个图片element操作如下:

  'create table logolist'.ForDOM().executeSQL();
  for(var i=0;i    "insert into logolist(nodename,title,src) values ('img','google','images/google.gif')".ForDOM().execute();
  };

  或者是DELETE这些符合条件的元素:

 ("delete from logolist where title='google'").ForDOM().execute();

  亦或是充当selector:

 var result = ("select * from logolist").ForDOM().execute();
 for(var i=0;i   result[i].src = 'baidu.gif';
 };

 接上文说道的JSQL

4.当然随着HTML5的普及,web DB 已经是大势所趋了

所以,JSQL封装到:

 _CLIENTDATABASE_ = 'HotelManage';
 _CLIENTDBVERSION_ = '0.1';
 _CLIENTDBDESC_ = "First Client DataBase";
 _CLIENTDBSIZE_ = 10240;


 JSQL("create table sqllite(id int)").OnClient().execute();

 for (var i = 0; i   JSQL("insert into sqllite (id) values ("+i+")").OnClient().execute();
 };
 var result = ("select * from sqllite").OnClient().executeSQL();
 //alert(result);
 for(var i=0;i   //do something using result[i] 
};

当然web DB 的sqlite同样支持Insert / select / update / delete / create / drop table
甚至更加牛逼的sql语句。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn