首页 > 代码库 > ESql标签(对数据库进行增删查改及命令操作)
ESql标签(对数据库进行增删查改及命令操作)
功能:WebEasy的核心功能之一,作为平台持久层的接口,用于对数据库的所有操作
· 对数据库进行增删查改及命令操作
查询时会返回一个书包(Bag)
别名为EasySql
用法:<esqlmodule=模块名 [id=书包名] [act=edit|exe|batch|refresh] [p] [commit=true|false|end]>SQL语句</esql>
module:连接数据库的模块名,必选项,在WebEasy系统目录下(如D:/webeasy),可以建立多个子目录,如help/base等,在子目录如果有一个database.xml文件,该子目录就会被系统识别为一个可用的数据库连接模块。系统要访问数据库时,首先要根据模块来确定如何与数据库建立持久关系,database.xml文件中保存了连接配置信息(后面的章节将介绍多种数据库的配置方法),如
<?xmlversion="1.0" encoding="GB2312"?> <Database DbUrl="jdbc:odbc:driver={Microsoft Access Driver(*.mdb)};dbq=" DriverName="sun.jdbc.odbc.JdbcOdbcDriver"Name="help/htok.mdb"/>
SQL语句:要执行的SQL语句,必填
id:书包名,可选项,查询数据库时返回的结果就放在该书包中
act:动作,可选项,执行增、删、改时值为edit,表示要修改数据库中的数据,执行设置数据库系统参数等操作时为exe,执行批量处理操作时为batch,更新database.xml配置内容时为refresh
p:SQL语句是不是来源于参数,如果整条SQL语句都是从其他书包中取出时必填,一般情况下用不到,如:<bag id=pPage><we name=sql>select * from Messages</we></bag>
<esql module=helpid=listp>@{pPage:sql}</esql>
还是以实际项目为例:
一政府行政单位的服务审批项目,后台数据库为SQLServer2005,数据模块文件dc/database.xml为
<?xml version="1.0" encoding="GB2312"?> <Database DbUrl="jdbc:sqlserver://localhost:1433" DriverName="com.microsoft.sqlserver.jdbc.SQLServerDriver" Name="htok_cm" Password="321654" UserName="xa" age="120" frequency="60" max="18" min="3" pause="3" timesUsed="30" trace="false" weName="综合平台数据库"></Database>集成一手持终端的数据库为Oracle,数据模块文件other/database.xml为
<?xml version="1.0" encoding="GB2312"?> <Database DbUrl="jdbc:oracle:thin:@192.168.20.84:1521" DriverName="oracle.jdbc.driver.OracleDriver" Name="oracle9" Password="wxwg" UserName="wxwg" age="120" frequency="60" max="6" min="0" pause="1" timesUsed="30" trace="false" weName="接处警审批数据"/>流程跟踪查询:
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TR vAlign=top> <TD style="BACKGROUND-REPEAT: repeat-x" background="@{sys:path}images/Title2.gif"> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TR vAlign=top> <TD height=32 style="BACKGROUND-REPEAT: no-repeat" noWrap width="100%" class="GAP1"> <P style="MARGIN-LEFT: 2px; MARGIN-RIGHT: 3px"><IMG height=9 src="@{sys:path}images/k7.gif" width=9 align=absMiddle> 流程跟踪</P></TD></TR></TABLE> </TD> <TD width=10 class="GAP1"><IMG height=21 src="@{sys:path}images/Title3.gif" width=16></TD> <TD style="BACKGROUND-REPEAT: repeat-x" vAlign=bottom width="100%" background="@{sys:path}images/Title4.gif"> <chtml> <Bag id=sys><we name=NodeID>c0</we></Bag> <call>checkAcl</call> <if x="@{sys:canDo}"> <div align=right x=true><a href="javascript:doDel()" title="删除误提交的审批项">[删除]</a> </div> </if> </chtml> </TD> </TR> </TABLE> <table width="99%" border="0" cellpadding="0" cellspacing="1" class="bg1" align=center> <tr align=center height="24"><th>审批内容</th><th>审批流程</th><th>步骤</th><th>接收时间</th><th>当前审批人</th></tr> <script> var AllPos = new Array(); var ids = new Array(); </script> <chtml> <!-- 执行查询 --> <esql module=base id=list> select htok_report.we_id,TITLE,FLOW_NAME,WE_NAME,RECEIVE_TIME,CREATORCN,FLOW_NODE.flow,WORKER from htok_report,FLOW_NODE where htok_report.flow=FLOW_NODE.flow and PASS_BEYOND='0' order by htok_report.we_id </esql> <bag id=pPage><we name=url>@{sys:face}site/look.html?we_id=</we></bag> <for bags=list end="@{list:getLength}"> <ESql module=base id=user>Select CNNAME From BASE_USERS Where USERNAME='@{list:WORKER}'</ESql> <tr height="22" class=bg0 onclick="clickRow(@{list:getSuffix});" id="r@{list:getSuffix}"> <td><a class="middle" href="@{pPage:url}@{list:we_id}" target=_blank>@{list:TITLE}</a></td> <td><a class="middle" href="@{pPage:url}@{list:we_id}" target=_blank>@{list:FLOW_NAME}</a></td> <td><a class="middle" href="@{pPage:url}@{list:we_id}" target=_blank>@{list:WE_NAME}</a></td> <td><a class="middle" href="@{pPage:url}@{list:we_id}" target=_blank>@{list:RECEIVE_TIME}</a></td> <td><a class="middle" href="@{pPage:url}@{list:we_id}" target=_blank>@{user:CNNAME}</a></td> </tr> <script>AllPos[@{list:getSuffix}]=0;ids[@{list:getSuffix}]='@{list:WE_ID}';</script> </for> </chtml> </table> <table border="0" cellpadding="0" cellspacing="0" align="center"> <tr height="25"> <td align="center"> <chinahtml> <if x="@{list:getLength}"> <p x=0>当前没有要审批的任务!!! </p> </if> </chinahtml> </td> </tr> </table>
效果:
效果不错吧!
系统通过ESql标签,轻松实现对数据库的各种操作。更有意思的是,可以同时链接多个不同的数据库。
轻开平台资源下载及说明
平台免费下载:http://download.csdn.net/detail/tx18/8381859
最新开发手册下载:http://download.csdn.net/detail/tx18/8411089
开发实例:轻开B2C电子商务网站,免费下载:http://download.csdn.net/detail/tx18/8318585
轻开平台会不定期升级为大家提供更多强大而Easy的功能,请留意最新的开发手册
ESql标签(对数据库进行增删查改及命令操作)