llh13610 发表于 2013-1-26 14:28:58

XSQL基础(二)

继续说一些XSQL里面的标签:
1.<xsql:dml> 执行SQL语句块
例如:可以执行多条SQL语句
<xsql:dml error-param="deleteError" commit="no">
begin
delete from ADMINUSER where ADMINID = {@adminid};

insert into ADMINOPERATELOG(LOGID,OPUSERID,OPTYPE,ENTERPRICEID,ELEMENT,OPTIME) select ADMINUSER_LOG_SEQUENCE.NEXTVAL,'{@userid}','DELETE','','企业用户账号为:{@adminuserid}被删除',sysdate from dual;
end;
</xsql:dml>
当然也可以:<xsql:dml>commit</xsql:dml>或者<xsql:dml>rollback</xsql:dml>等用法

2.<xsql:query>执行查询的SQL语句返回的结果在XML文件中
例如:这个标签有比较多的属性,row-element 设置XML文件中ROW的名字;rowset-element 设置XML文件中ROWSET的名字等
<xsql:query>
    select * from Emp
</xsql:query>

3.自定义标签:由于在具体项目当中,可能这些现有的标签不能满足我们的需求,于是我们就可以根据需求做一个自定义的标签,下面简单介绍一下自定义标签的流程:
a)首先新建一个JAVA方法,继承XSQLActionHandlerImpl类
   例如:
import java.sql.SQLException;import org.w3c.dom.Element;import org.w3c.dom.Node;import oracle.xml.xsql.XSQLActionHandlerImpl;import oracle.xml.xsql.XSQLPageRequest;public class TestXsql extends XSQLActionHandlerImpl{         private String userId ="";public void init(XSQLPageRequest env,Element e){super.init(env,e);             //取得从XSQL文件传递过来的参数             this.userId=this.getAttributeAllowingParam("userId",e);}public void handleAction(Node arg0) throws SQLException {}}
init()这个方法能帮助我们取到从XSQL文件传过来的参数;
handleAction()方法就是实现我们的具体业务;
b)在XSQLConfig.xml文件中定义自己的标签,然后关联我们新建的类
<action>
    <elementname>TestXsql</elementname>
    <handlerclass>com.csair.minorenterprises.TestXsql</handlerclass>
</action>
c)在XSQL文件中使用我们定义的标签
<xsql:TestXsql userId="{@userId}"/>
到这自定义标签就基本完成了...

下面的附件包含了一个XSQL的帮助文档和XSQLConfig.xml文件的详细说明
页: [1]
查看完整版本: XSQL基础(二)