解决方案 »
- spring中如何用注解实现注入sessionFactory?
- ssh 连接多个数据库
- struts错误提示不建议使用的类型,求教
- 如何在Spring中创建一个Bean到web application中
- 规则引擎
- hibernate多表映射中如何添加单个表的信息,有例!
- ireport jasper中使用 mysql数据库,中文处理问题。
- 在运行远程对象注册到RMI的名称空间时,不知道为什么总是提示远程对象的客户端代理不存在(如:CompanyImpl_Stub)
- struts连接数据库的问题
- 【100分大调查】各位作JAVA开发的朋友,你们公司都主要用JAVA开发什么项目,主要用JAVA的哪些技术,客户是什么单位呢?
- spring @Transactional注解无效
- 从别的电脑上拷贝的maven项目,在自己电脑上出现org.springframework.beans.factory.BeanCreationException
byte[] stopRow = BytesUtil.toBytes("zz");
Scan scan = new Scan(startRow, stopRow);
ResultScanner rs = table.getScanner(scan);参数传入调用就是这块,你替换这里就行了
同样的方式输入status和其他任意字段都可以。
想实现输入(startTime,finishTime,num)按开始完成时间查询(guid)按任务编码查询或者(status,num)按任务状态来查询记录。其他几个参数在未输入的情况下用if判断赋空值。
这是原方法我该怎么改写呢。
public List getRecentJobs(long time, int num) {
long timestamp = time < 0 ? 0 : TRACE_ROW_KEY_SEED - time;
String keyPrefix = StringUtils.leftPad("" + timestamp, 16, '0');
List list = new ArrayList();
HTableInterface table = null;
try {
table = this.getHTable(TABLE_JOB_TRACE);
byte[] startRow = BytesUtil.toBytes(keyPrefix + "00");
byte[] stopRow = BytesUtil.toBytes("zz");
Scan scan = new Scan(startRow, stopRow);
ResultScanner rs = table.getScanner(scan);
int i = 0;
for (Result r : rs) {
String guid = BytesUtil.toString(r.getRow());
guid = StringUtils.right(guid, guid.length() - TRACE_ROW_KEY_SEED_LENGTH);
String correlationId = BytesUtil.toString(r.getValue(CF_INFO, COL_CORRELATIONID));
String errorMessage = BytesUtil.toString(r.getValue(CF_INFO, COL_ERROR));
long finishTime = BytesUtil.toLong(r.getValue(CF_INFO, COL_FINISHTIME));
String name = BytesUtil.toString(r.getValue(CF_INFO, COL_NAME));
long startTime = BytesUtil.toLong(r.getValue(CF_INFO, COL_STARTTIME));
int status = BytesUtil.toInt(r.getValue(CF_INFO, COL_STATUS));
String callbackUrl = BytesUtil.toString(r.getValue(CF_INFO, COL_CALLBACK));
String task = BytesUtil.toString(r.getValue(CF_INFO, COL_TASK)); JobInstance instance = new JobInstance();
instance.setGuid(guid);
instance.setCorrelationId(correlationId);
instance.setErrorMessage(errorMessage);
instance.setFinishTime(finishTime);
instance.setName(name);
instance.setStartTime(startTime);
instance.setStatus(status);
instance.setCallbackUrl(callbackUrl);
instance.setTask(task); list.add(instance);
i ++;
if (i >= num) {
break;
}
} return list;
} catch (IOException e) {
throw new BeyeException(510, e.getMessage(), e);
} catch (NullPointerException e) {
throw new BeyeException(404, e.getMessage(), e);
} finally {
try {
table.close();
} catch (Exception ex) {
}
}
}
现在要改成public List<JobInstance> getRecentJobs(long startTime, long finishTime, String jobGuid, int status, int num) {}