公司框架流程

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标签



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值