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 + -
显示快捷键?