| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package xin.glue.ui.B.B02;
- import com.posdata.glue.biz.activity.PosActivity;
- import com.posdata.glue.biz.constants.PosBizControlConstants;
- import com.posdata.glue.context.PosContext;
- import com.posdata.glue.dao.PosGenericDao;
- import com.posdata.glue.dao.PosJdbcDao;
- import com.posdata.glue.dao.manager.PosQueryDefinition;
- import com.posdata.glue.dao.manager.PosQueryManager;
- import com.posdata.glue.dao.vo.PosParameter;
- import com.posdata.glue.dao.vo.PosRowSet;
- /**
- *
- * @Description 多条件查询
- * @author 梅贵平{meiguiping}
- * @date 2009-1-5 下午01:12:06
- * @JDK Version jdk1.4.2
- */
- public class MutilConditionFind extends PosActivity
- {
- public String runActivity(PosContext context)
- {
- PosGenericDao dao = this.getDao("mesdao");
- PosParameter param = new PosParameter();
- PosRowSet rowset = null;
-
- //参数:sql、subsql-count、subsqli、parami、resultkey
- StringBuffer sql = this.getQuerySql(this.getProperty("sql"));//sql查询
- int sqlCount= Integer.parseInt(this.getProperty("subsql-count"));//条件个数
- int len = 0;//每条SUBSQL的参数个数
- int jj = 0;
- String subsqli = "";
- String parami = "";
- for(int i=0; i < sqlCount; i++)
- {
- subsqli = this.getQuerySql(this.getProperty("subsql"+i)).toString();
- parami = this.getProperty("param"+i);
- // sql.append("\n"+subsqli);
- if(parami != null)
- {
- String[] sqlParam = parami.split("\\|");
- len = sqlParam.length;
-
- for(int j = 0; j < len; j++)
- {
- String[] sss = (String[])context.get(sqlParam[j]);
- if("".equals(sss[0]))//注意,这里只做了条件不为空的判断
- {
- continue;
- }
- if(j==0)
- {
- sql.append(subsqli+" \n ");
- }
- param.setWhereClauseParameter(jj++, sss[0]);
- }
- }//if end
- }//for end
-
- // System.out.println("###################################################\n"+sql.toString());
-
- String resultkey = this.getProperty("resultKey");
- rowset = dao.findByQueryStatement(sql.toString() , param);
- context.put(resultkey, rowset);
- return PosBizControlConstants.SUCCESS;
- }
-
-
- //获取query.xml文件中的SQL语句
- public StringBuffer getQuerySql(String id)
- {
- PosJdbcDao dao = (PosJdbcDao)this.getDao("mesdao");
- PosQueryManager ppt = dao.getQueryManager();
- PosQueryDefinition x = ppt.getQueryDefinition(id);
- return new StringBuffer(x.getQueryStatement());
- }
- }
|