⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 updateserviceimpl.java

📁 本系统实现了从五个网站上搜索的图书进行整合后
💻 JAVA
字号:
package com.booksearch.quartz;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;

import com.booksearch.dao.BookSaveDao;
import com.booksearch.dao.DailySaveDao;
import com.booksearch.orm.Daily;
import com.booksearch.service.htmlparser.HtmlParser;
import com.booksearch.service.urlservice.UrlfromDatabase;
import com.booksearch.util.UpdateUtilBean;
/**
 * Class:SearchAction
 * Description: 在本地数据库中查找是否有匹配记录,如果有,则转到数据处理类,否则,转到抽取网站内容的action
 * extens:no
 * implements UpdateService
 * @author  feng guang
 * @since   11/29/08
 */
public class UpdateServiceImpl implements UpdateService {

	
	private DailySaveDao dailySaveDao;
	
	private BookSaveDao bookSaveDao;
	
    /*从数据库中取得请求url的接口引用*/
    private UrlfromDatabase urlfromDatabase;
    
	public void setUrlfromDatabase(UrlfromDatabase urlfromDatabase) {
		this.urlfromDatabase = urlfromDatabase;
	}
	public void setBookSaveDao(BookSaveDao bookSaveDao) {
		this.bookSaveDao = bookSaveDao;
	}
	public void setDailySaveDao(DailySaveDao dailySaveDao) {
		this.dailySaveDao = dailySaveDao;
	}

	/**
	* Function:  startMultithread
	* Description: 循环取出每一条日志记录,抽取每个网站的下一页内容,直到没有下一页,并添加到数据库中
	* Calls:  this.fromFirstUrl(),this.fromNextUrl(),this.toUpdate()
	* Called By:  DataBaseUpdate.getUpdateDaily()
	* @param list as ArrayList<Daily>
	* @return void
	* @throws no
	*/
	public void startMultithread(ArrayList<Daily> list) {
		
		Iterator it = list.iterator();
		/*循环遍历list,对每一个关键字,如果某个网站还有记录再去抓取*/
		while(it.hasNext()){
			
			Daily daily = (Daily)it.next();			
			/*如果记录数大于100,不再去网站爬取内容*/
			if(daily.getRecordNum()>100)
				continue;
			else {

				HashMap<String,String> urlMap = null;

	            if("advanced".equals(daily.getSearchKind())){
					/*如果只有出版社非空,则不进行更新*/
					ArrayList<String> tempList = new ArrayList<String> ();
					StringTokenizer st = new StringTokenizer(daily.getKeyword(), "+");
					
					while (st.hasMoreElements()) {
						tempList.add(st.nextToken());
					}
			        if("null".equals(list.get(0))&&"null".equals(list.get(1))
			         &&"null".equals(list.get(2))&&"null".equals(list.get(4))
			         &&"null".equals(list.get(5))&&"null".equals(list.get(6))
			         &&"null".equals(list.get(7))&&"null".equals(list.get(8))
			         &&"null".equals(list.get(9))&&!"null".equals(list.get(3)));
			        else{
			        	
						try {
							urlMap = this.urlfromDatabase.getAdvancedUrlMap(daily.getKeyword());
						}catch (Exception e) {

						}
			        }
				}else{
					urlMap = this.urlfromDatabase.getUrlMap(daily.getKeyword(),daily.getSearchKind());
				}
				/*获得每个网站的请求url路径*/
				if(null != urlMap){
					new ThreadToUpdate(urlMap,daily.getKeyword(),this.dailySaveDao,this.bookSaveDao).start();
				}
			}

		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -