📄 updateserviceimpl.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 + -