dailyloaddaoimpl.java
来自「本系统实现了从五个网站上搜索的图书进行整合后」· Java 代码 · 共 198 行
JAVA
198 行
package com.booksearch.dao;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.booksearch.orm.Daily;
/**
* Class:DailyLoadDaoImpl
* Description: 从数据库中获得满足条件的所有Daily实体对象和记录总数
* extens:HibernateDaoSupport
* implements:BookLoadDao
* @author feng guang
* @since 11/28/08
*/
public class DailyLoadDaoImpl extends HibernateDaoSupport implements DailyLoadDao {
List temp = null;
/**
* Function: isKeywordExist
* Description: 判断关键字是否有日志记录
* Calls: no
* Called By: SearchAction.execute(),SearchAdvancedAction.execute()
* @param keyword as String
* @return boolean
* @throws no
*/
public boolean isKeywordExist(String keyword) {
if("".equals(keyword)||null == keyword)
return false;
else{
temp = this.getHibernateTemplate().find("from Daily as daily where daily.keyword = ?",keyword);
if(null != temp&&temp.size() > 0)
return true;
else
return false;
}
}
/**
* Function: loadNextPageUrl
* Description: 从dailyinfo表中查询出某关键字的下一页url
* Calls: no
* Called By: PageAction.execute()
* @param keyword as String
* @return HashMap<String, String>
* @throws no
*/
public HashMap<String, String> loadNextPageUrl(String keyword) {
HashMap<String,String> temMap = new HashMap<String,String>();
// temp = this.getHibernateTemplate().find("from Daily as daily where daily.keyword = ?",keyword);
// if(null != temp&&temp.size()>0){
// Daily daily = (Daily)temp.get(0);
// if(null != daily.getDangdang()&&!"no".equals(daily.getDangdang()))
// temMap.put("dangdang", daily.getDangdang());
// if(null != daily.getChina_pub()&&!"no".equals(daily.getChina_pub()))
// temMap.put("china_pub", daily.getChina_pub());
// if(null != daily.getZhuoyue()&&!"no".equals(daily.getZhuoyue()))
// temMap.put("zhuoyue", daily.getZhuoyue());
// if(null != daily.getTsinghua()&&!"no".equals(daily.getTsinghua()))
// temMap.put("tsinghua", daily.getTsinghua());
// if(null != daily.getGaojiao()&&!"no".equals(daily.getGaojiao()))
// temMap.put("gaojiao", daily.getGaojiao());
// }
//
return temMap;
}
/**
* Function: getMatchNum
* Description: 从dailyinfo表中查询出某关键字的匹配总数
* Calls: no
* Called By: SearchAction.execute()
* @param keyword as String
* @return long
* @throws no
*/
public long getMatchNum(String keyword) {
Daily daily = new Daily();
temp = this.getHibernateTemplate().find("from Daily as daily where daily.keyword = ?",keyword);
if(null != temp&&temp.size()>0)
daily = (Daily)temp.get(0);
return daily.getRecordNum();
}
/**
* Function: loadDaily
* Description: 从dailyinfo表中查询出一天内增加的所有日志信息
* Calls: no
* Called By: DataBaseUpdate.getUpdateDaily()
* @param currTime as long
* @return ArrayList<Daily>
* @throws no
*/
public ArrayList<Daily> loadDaily(long currTime){
/*一天前的时间*/
long dayBefTime = currTime-24*60*60*1000;
String sql = "select {daily.*} from dailyinfo daily where visitTime between "+dayBefTime+" and "+currTime;
SQLQuery query = this.getSession().createSQLQuery(sql);
query.addEntity("daily", Daily.class);
ArrayList<Daily> result = (ArrayList<Daily>)query.list();
return result;
}
/**
* Function: loadDaily
* Description: 从dailyinfo表中查询出与关键字相关的日志信息
* Calls: no
* Called By: RelShowAction.execute()
* @param keyword as String
* @return ArrayList<Daily>
* @throws no
*/
public ArrayList<Daily> loadDaily(String keyword) {
final String strHql = "from Daily as daily where daily.keyword like :keyword";
ArrayList<Daily> result = new ArrayList<Daily>();
/*处理分页*/
final int firstResult = 0;
final String keyword1 = keyword;
result = (ArrayList<Daily>) this .getHibernateTemplate().executeFind( new HibernateCallback() {
public List doInHibernate(Session session){
Query query = session.createQuery( strHql);
query.setString("keyword", "%"+keyword1+"%");
query.setFirstResult(firstResult);
query.setMaxResults(10);
return query.list();
}
});
return result;
}
/**
* Function: loadDailyHis
* Description: 从dailyinfo表中查询出某ip的日志信息
* Calls: no
* Called By: HisShowAction.execute()
* @param ip as String
* @return ArrayList<Daily>
* @throws no
*/
public ArrayList<Daily> loadDailyHis(String ip){
/*查询出匹配的记录*/
final String strHql = "from Daily as daily where daily.remoteAddr = :remoteAddr";
ArrayList<Daily> result = new ArrayList<Daily>();
/*处理分页*/
final int firstResult = 0;
final String remoteAddr = ip;
result = (ArrayList<Daily>) this .getHibernateTemplate().executeFind( new HibernateCallback() {
public List doInHibernate(Session session){
Query query = session.createQuery( strHql);
query.setString("remoteAddr", remoteAddr);
query.setFirstResult(firstResult);
query.setMaxResults(10);
return query.list();
}
});
return result;
}
public ArrayList<Daily> loadDailySuggest(String keyword) {
/*查询出匹配的记录*/
final String strHql = "from Daily as daily where daily.keyword like :keyword";
ArrayList<Daily> result = new ArrayList<Daily>();
/*处理分页*/
final int firstResult = 0;
final String temKeyword = keyword;
result = (ArrayList<Daily>) this .getHibernateTemplate().executeFind( new HibernateCallback() {
public List doInHibernate(Session session){
Query query = session.createQuery( strHql);
query.setString("keyword", temKeyword + "%");
query.setFirstResult(firstResult);
query.setMaxResults(10);
return query.list();
}
});
return result;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?