公司框架流程

来源:互联网 发布:sysbench mysql 编辑:程序博客网 时间:2024/04/27 09:46

1.调用存储过程:

(1)在action中,先将request和response封装

HttpRequest V_HttpRequest = new HttpRequest(request, response);
(2)指定调用哪个存储过程

V_HttpRequest.resetParameter("I_Operator","P_XXC_TEST.XXC_Test");//第一个参数是定死的,表示去调用存储过程的意思,第二个参数点的左边是包名,右边是函数名

(3)给存储过程的参数赋值

V_HttpRequest.resetParameter("I_ID",Util.nvl(V_HttpRequest.getParameter( "ID" )).trim());//第一个参数必须和存储过程的形参名一样,第二个参数是页面传递的具体值
(4)执行存储过程

SelectProc V_ResultProc = new SelectProc(V_HttpRequest);//具体执行调用存储过程的步骤是在这个类的构造函数中执行


2.点击添加后刷新父页面:

window.top.opener.location.reload();//刷新父窗口window.close();


3.调用.xml文件中的查询语句

(1)指定调用哪个xml文件里的sql语句

V_HttpRequest.resetParameter("xmlfile","//page//test//gdf//gdf.xml");//第一个参数是写死的,表示去调用xml文件,第二个参数是这个xml文件的具体路径

(2)指定调用这个xml文件里哪个sql语句

V_HttpRequest.resetParameter("aliassql", "getEdit");//第一个参数是写死的,表示去调用sql语句,第二个参数是下面xml文件里sql标签中的name属性,对上了则就调用这个sql语句

(3)创建一个SelectResult实例,并调用方法,执行上面设置好的sql语句。

SelectResult V_Result = new SelectResult(V_HttpRequest);//创建实例DataSet V_DataSet = V_Result.getDataSet();//一般xml文件里执行的都是查询语句,所以会返回一个DataSet数据集,

(4)遍历数据集(遍历数据集必须要注意的是,开始的时候指针是指向第一行之前的也就是没数据的)

if (V_DataSet == null) {//判断数据集是否为NULL        out.println("<script>alert('错误信息:\\n查找需要修改的数据失败!');window.close();</script>");        return;    }       V_DataSet.firstRecord();//将指针指向第一条数据,或者  V_DataSet.goTop(); V_DataSet.next();       while (V_DataSet.next()) {//循环       ID = Util.nvl(V_DataSet.getString("ID"));                 ...   }





存放拼接sql语句的xml文件

<?xml version="1.0" encoding="GBK" ?><query-config><query name="test"><sql name="fileDown">Select * From test t where 1=1 $xxc_test<exp name="xxc_test" tag-name="where" target="xxc_test"/></sql><sql name="getCountSql">Select count(*) cnt From test t where 1=1 $xxc_test<exp name="xxc_test" tag-name="where" target="xxc_test"/></sql><sql name="getAllList">Select * From          (Select t.*, Rownum rn From test t where 1=1 $xxc_test)Where $MRownum <exp name="xxc_test" tag-name="where" target="xxc_test"/><exp name="MRownum" tag-name="where" target="MRownum"/></sql><sql name="getEdit">Select t.* From test t where 1=1 $xxc_test<exp name="xxc_test" tag-name="where" target="xxc_test"/></sql><where name="xxc_test"><start-with>and</start-with><!-- 这边空格没用 --><field name="name" type="value" prefix="and name like '%$name%' " valid="false"/><!-- 首先程序会去判断前台传过来的参数是否为null或空字符串,如果是的话就不把条件语句加到where后面,反之就加 --><field name="age" type="value" prefix="and age like '%$age%' " valid="false"/><field name="ID"  type="value" prefix="and ID = '$ID' " valid="false"/><!-- $ID表示取name='id'的值   -->    <field name="AGE1"  type="value" prefix="and  t.AGE  >= $AGE1 " valid="false"/>    <field name="AGE2"  type="value" prefix="and  t.AGE <= $AGE2 " valid="false"/>    <field name="NAME"  type="value" prefix="and  t.NAME like '%$NAME%' " valid="false"/></where><where name="MRownum"> <field name="start" type="value" prefix="and rn >= $start" valid="false"/><field name="endrow" type="value" prefix="and rn <= $endrow " valid="false"/></where></query></query-config>

拿<sql name="fileDown">这个标签里的exp标签来做说明:

Select * From test t where 1=1 $xxc_test

$xxc_test表示会去当前exp标签中找name="xxc_test"的exp标签,

exp标签中的tag-name="where" target="xxc_test" 这两个表示会去找下面的 name="xxc_test"  的where标签



原创粉丝点击