DIAVIS-wiki
043_InfolinesRSS

#contents

[[INFOLINES]]

----

*データの取得 [#lb8f071b]
Timerクラスを利用して一定時間ごとに更新.

 Timer timer = new Timer();
 timer.schedule( new CheckTask(), 0, interval )

更新間隔の設定はinterval(ms)で指定.
 long interval = 60000;
 
**CheckTaskクラス [#y371b98d]
 class CheckTask extends TimerTask {		
		public CheckTask( ) {
		}
		public void run() {
			updateChannels();
			updateObjects();	
			Calendar calendar = GregorianCalendar.getInstance();
			current = calendar.getTime();
			prevUpdated = new Timestamp(  current.getTime() );
			//removeTime = timeCycleOfUserCheck;	
			System.out.println("prevUpdated: " + prevUpdated.toString() );
		}
	}

*updateObjects() [#z6aa325a]
 public void updateObjects() {
	System.out.println("//////////////////////////////////////////////////\n updateObjects()");
	if(	prevUpdated == null ) return;
	try {
		Connection con = Database.getInstance().getConnection();
        
        StringBuffer sql = new StringBuffer();
        sql.append("select * from items where TIMESTAMP >'");
        sql.append(prevUpdated);
        sql.append("'order by date desc");
        PreparedStatement stmt = con.prepareStatement(sql.toString());
        ResultSet rs = stmt.executeQuery();
        
       // DAOItem.getItem(id)
        ItemIF item;
		int rowcount = 0;
		while( rs.next() ) {
			item = DAOItem.getItem(rs.getLong("ITEM_ID"));
			
			System.out.println("[ " + rowcount + " ] : " + rs.getString("TITLE") + " | " + item.getDate().toString()  + " > prevUpdated" + prevUpdated.toString() );
			if( item != null ) {
				newItems.add(item);
			}
			latestTime = rs.getTimestamp("DATE");
			rowcount++;
		}
		
		for( int i = 0 ; i < newItems.size(); i++ ) {
			item = (ItemIF)newItems.get(i);
			viewer.addItem(item);
		}
		
		newItems.clear();
		
		rs.close();
		stmt.close();
		
	} catch( Exception e) {
		
	}
 }
	
*使用しているライブラリ [#xf53ffcd]
-commons-logging.jar
-jdom.jar
-informa.jar
-hsqldb.jar

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS