ESql标签(对数据库进行增删查改及命令操作)

功能:WebEasy的核心功能之一,作为平台持久层的接口,用于对数据库的所有操作

·        对数据库进行增删查改及命令操作

查询时会返回一个书包(Bag)

别名为EasySql

  用法:<esql
module=模块名 [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=list
p>@{pPage:sql}</esql>

commit:提交,可选项,默认为commit=true(提交单条SQL语句),执行事务时第一条设为commit=false,最后一条设为commit=end,同一模块的多个esql标签中的SQL语句会组成一个事务提交到数据库。

还是以实际项目为例:

一政府行政单位的服务审批项目,后台数据库为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="[email protected]{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的功能,请留意最新的开发手册

时间: 2024-07-31 00:40:47

ESql标签(对数据库进行增删查改及命令操作)的相关文章

java实现简单的数据库的增删查改,并布局交互界面

一.系统简介 1.1.简介  本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作. 二.功能设计 2.1  需求分析 21世纪是信息化时代,信息化已更快捷更方便为目标来融入各行各业.学校也不例外.当前,我国的学校正在加紧实施信息化建设,其中学生信息管理是相对重要的 一部分. 目前,社会上信息管理系统发展飞快,各个企事业单位都引入了信息化管理软件来管理自己日益增长的各种信息,学生信息管理

MongoDB数据库进阶 --- 增删查改...

在之前的文章中,我已经介绍了什么事MongoDB以及怎么在windows下安装MongoDB等等基本知识. 所以这篇进阶的博客就主要介绍以下如何进行数据库的基本操作 --- 增删查改. 数据库相关 显示所有数据库: show dbs 其中admin和local都是默认存在的数据库. 查看当前数据库: db 即当前默认就是test数据库,但是为什么在 show dbs 的时候没有呢?  这是因为test数据库中没有任何数据,所以不会显示,后面会介绍插入数据,插入数据后就会显示了. 创建数据库: u

数据库表增删查改帮助类

1.目的 使用ADO.NET操作连接Sqlserver数据库,增删改查数据表. 2.要求 传入SQL语句和参数,得到结果集或字典集 3.实现办法 封装ado.net对象的参数化方法和SqlDataReader取值方法,将传入的参数加入SqlParameter,将取出的值放入字典集或者对象列表 传参数时通过找出SQL语句中的参数标识找到参数名,通过名或者参数传入的位置找到参数值.然后加入SqlParameter 取值时通过SqlDataReader读取每行数据,以列名为键,值为值 加入字典列表.或

phpStudy7——MySql数据库的增删查改

1. 添加数据: 1 //添加数据 2 3 $strsql = "insert into user_info(userId,userName,phoneNumber,userScore,dataTime) values(null,'$name','$phone','$score',now())"; 4 $result = @mysql_query($strsql); 5 6 //成功添加 7 if($result) 8 { 9 echo true; 10 }else{ 11 echo

数据库---》增删查改

***数据的插入:(增) insert into 表名(字段列表) values(值列表) 如果不写字段列表就要为表添加全部的列数据 其实into也可以省略 每次只能插入一条数据 1.如果字段可以为null或有默认值,也可以在添加值的时候使用null/default代替 ,但不能什么都不填 2.非空字段一定要传入值 3.插入的值必须要符合表的Check约束 4.所有的字段都可以使用单引号’’ 如果本来是字符串的值 没有加‘ ’号,那么会报错,因为会被当成变量 5.日期值一定要加单引号,如果没有加

用Jmeter实现mysql数据库的增删查改

主要是参考虫师的“使用JMeter创建数据库(Mysql)测试”. 我的环境: MySQL: mysql 5.6.21 jdbc驱动:我用的是5.1.7,低版本的好像有问题,用这个是没问题的 Jmeter:Jmeter2.1.1 1.打开Jmeter,点击测试计划 点击[浏览]按钮,将JDBC驱动添加进来 2.添加线程组 Jmeter性能测试,最重要的就是线程组了,线程组就相当于用户活动 3.添加JDBC Connection Configuration 配置JDBC,其中加上allowMult

数据库的增删查改insert,delete,select,update

insert:一般只要参数个数和类型没问题,不会插入异常 INSERT INTO t_pos_dynamic_map(autoid, lt_termno, lt_merchno) VALUES(SEQ_Pos_dynamic_Map_Autoid.NEXTVAL, lTradeInfo.Ltl_Termno, lTradeInfo.Ltl_Merchno); delete: delete from nac_user.t_nac_route_log        删除整表记录,可回滚还原 trun

SQLite在android中的使用,以及常用增删查改的命令代码!

一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java.C++..Net等,还有ODBC接口,同样比起 Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的

Sqlite数据库增删查改操作

1.SqliteOpenHelper为数据库抽象类,需创建一个类继承他,其中有onCreate创建数据库的抽象方法和onUpgrade升级数据库方法(一般用不上). 1 //创建数据库的类 2 //SQLiteOpenHelper抽象类 onCreate和onUpgrade抽象方法 3 public class MySqliteHelper extends SQLiteOpenHelper { 4 5 //新建数据库以及表 6 private String SqlCpData="create t