SSH綜合查詢的兩種方式
[color=red]方法1:直接用ORACLE方言函式進行比較[/color]
[color=red]方法2:使用佔位符對物件進行比較[/color]
[color=red]注:帶註釋符的是一種方法(使用佔位符對物件進行比較),不帶註釋符是直接用ORACLE方言函式進行比較[/color]
//綜合查詢
public List getOpeRecsByCon1(HttpServletRequest request){
log.debug("finding OpeRecords instances by Condition");
try {
String factoryId = "";
String spciltyId = "";
String dutyId = "";
String classId = "";
factoryId = request.getParameter("factoryId");
spciltyId = request.getParameter("spciltyId");
dutyId = request.getParameter("dutyId");
classId = request.getParameter("classId");
StringBuffer queryString = new StringBuffer();
queryString.append("from OpeRecords o where 1=1");
//如果選擇了執行單位和專業
if((factoryId.length()!=0)&&(spciltyId.length()!=0)){
queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.runfactory='"+factoryId+"' and a.specialtyid='"+spciltyId+"')");
}
//如果僅僅選擇了執行單位
if((factoryId.length()!=0)&&(spciltyId.length()==0)){
queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.runfactory='"+factoryId+"')");
}
//如果僅僅選擇了專業
if((factoryId.length()==0)&&(spciltyId.length()!=0)){
queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.specialtyid='"+spciltyId+"')");
}
//如果選擇了班次
if(dutyId.length()!=0){
queryString.append(" and o.dutyid='"+dutyId+"'");
}
//如果選擇了值別
if(classId.length()!=0){
queryString.append(" and o.classid='"+classId+"'");
}
String startTimeStr = request.getParameter("startTime");
String endTimeStr = request.getParameter("endTime");
if(startTimeStr!=null&&!startTimeStr.equals("")){
queryString.append(" and o.gettime >to_date('"+startTimeStr+"','yyyy-MM-dd HH24:mi:ss')");
}else if(endTimeStr!=null&&!endTimeStr.equals("")){
queryString.append(" and o.gettime <to_date('"+endTimeStr+"','yyyy-MM-dd HH24:mi:ss')");
}else if(startTimeStr!=null&&!startTimeStr.equals("")&&endTimeStr!=null&&!endTimeStr.equals("")){
queryString.append(" and o.gettime >to_date('"+startTimeStr+"','yyyy-MM-dd HH24:mi:ss')");
queryString.append(" and o.gettime <to_date('"+endTimeStr+"','yyyy-MM-dd HH24:mi:ss')");
}
return getHibernateTemplate().find(queryString.toString());
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}
[color=red]方法2:使用佔位符對物件進行比較[/color]
//綜合查詢
public List getOpeRecsByCon2(HttpServletRequest request){
log.debug("finding OpeRecords instances by Condition");
try {
String factoryId = "";
String spciltyId = "";
String dutyId = "";
String classId = "";
factoryId = request.getParameter("factoryId");
spciltyId = request.getParameter("spciltyId");
dutyId = request.getParameter("dutyId");
classId = request.getParameter("classId");
StringBuffer queryString = new StringBuffer();
queryString.append("from OpeRecords o where 1=1");
//如果選擇了執行單位和專業
if((factoryId.length()!=0)&&(spciltyId.length()!=0)){
queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.runfactory='"+factoryId+"' and a.specialtyid='"+spciltyId+"')");
}
//如果僅僅選擇了執行單位
if((factoryId.length()!=0)&&(spciltyId.length()==0)){
queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.runfactory='"+factoryId+"')");
}
//如果僅僅選擇了專業
if((factoryId.length()==0)&&(spciltyId.length()!=0)){
queryString.append(" and o.modelid in (select a.modelid from Opemodel a where a.specialtyid='"+spciltyId+"')");
}
//如果選擇了班次
if(dutyId.length()!=0){
queryString.append(" and o.dutyid='"+dutyId+"'");
}
//如果選擇了值別
if(classId.length()!=0){
queryString.append(" and o.classid='"+classId+"'");
}
String startTimeStr = request.getParameter("startTime");
String endTimeStr = request.getParameter("endTime");
if((startTimeStr!=null&&!startTimeStr.equals(""))&&(endTimeStr!=null&&endTimeStr.equals(""))){
Date startTime = StringToDate.StrToDate4yyyyMMddHHmmss(startTimeStr);
queryString.append(" and o.gettime >?)");
return getHibernateTemplate().find(queryString.toString(),new Object[]{startTime});
}else if(endTimeStr!=null&&!endTimeStr.equals("")&&(startTimeStr!=null&&startTimeStr.equals(""))){
Date endTime = StringToDate.StrToDate4yyyyMMddHHmmss(endTimeStr);
queryString.append(" and o.gettime <?");
return getHibernateTemplate().find(queryString.toString(),new Object[]{endTime});
}else{
Date startTime = StringToDate.StrToDate4yyyyMMddHHmmss(startTimeStr);
Date endTime = StringToDate.StrToDate4yyyyMMddHHmmss(endTimeStr);
queryString.append(" and o.gettime between ? and ?");
return getHibernateTemplate().find(queryString.toString(),new Object[]{startTime,endTime});
}
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}
[color=red]注:帶註釋符的是一種方法(使用佔位符對物件進行比較),不帶註釋符是直接用ORACLE方言函式進行比較[/color]
相關文章
- SSH整合實現分頁查詢(兩種方式)
- SSH_hibernate---六種查詢資料庫方式資料庫
- 兩種方式建立支援SSH服務的docker映象Docker
- hibernate的三種查詢方式
- SSH:查詢
- #MyBatis多表查詢 #多對一、一對多的兩種實現方式 @FDDLCMyBatis
- 兩種閃回查詢的使用實驗
- JAVA - mongodb 聚合幾種查詢方式JavaMongoDB
- javascript事件查詢綜合JavaScript事件
- gitlab兩種連線方式:ssh和http配置介紹GitlabHTTP
- 報表查詢條件的 N 種使用方式
- ssh 分頁查詢
- 簡單介紹python連線telnet和ssh的兩種方式Python
- 查詢 JSON 資料結構的 8 種方式JSON資料結構
- 查詢json資料結構的8種方式JSON資料結構
- SSH:hiberate實現資料的查詢(單查詢和全查詢)
- ChatTTS的兩種使用方式TTS
- 訂單綜合查詢之sqlSQL
- 綜合資訊查詢系統IISS
- SSH框架下的分頁查詢框架
- ssh框架中的分頁查詢框架
- ssh查詢及其安裝
- JS 垃圾回收的兩種方式JS
- Docker打包映象的兩種方式Docker
- sparkrdd轉dataframe的兩種方式Spark
- 提交Application的兩種方式APP
- 建立Session物件的兩種方式Session物件
- 多條件查詢---ssh版本
- Hibernate 框架的查詢方式框架
- zabbix agent 的兩種安裝方式
- HTTP代理的兩種連線方式HTTP
- redis的php驅動兩種方式RedisPHP
- JavaScript 函式的兩種宣告方式JavaScript函式
- RAC時間同步的兩種方式
- easyUI 初始化的兩種方式UI
- 建立oracle dblink 的兩種方式Oracle
- 安裝aab包的兩種方式
- Hibernate查詢方式