2009年4月30日 星期四

RFID模組

今天下午看了廠商DEMO了RFID模組,
在無限RFID的那個模組我這邊應該是沒有應用的可能,
但是另外一個教學用RFID模組我到是有一點好奇,
可以讀取和修改卡片的資料,
當作儲值卡、電子錢包來用的話,
倒是可以用來作為線上交費的功能,
可是這樣的話不僅要能夠用那個模組連接資料庫,
而且每個想使用此功能的人家裡都要有一台,
這樣成本過高大概不會有人想要用.
重點在於他是用.NET來寫應用程式,
要改成網頁形的話還要改寫成JAVA來跟JSP結合,
這樣子應該還要花上不短的時間,
我認為想要把他結合到專題裡恐怕有些困難!

2009年4月28日 星期二

商品到期機制的資料刪除(5/8修改)

原本我的商品到期以後只有設定顯示商品到期,
但是後來加入到期後刪除資料的地方卻發生錯誤,
while(rs.next)
{
int id=rs.getint(article_id);
...
if(設定時間==目前時間)
{
stmt.executeUpdate("delete from time where article_id=id;");
}

}
發生錯誤的地方如上,
如果以這樣方式的話,
在刪除一筆資料時不會錯誤,
但如果有多筆資料的設定時間都一樣時,
刪除第一筆完後就會發生錯誤,
我猜測的原因是因為當刪除時,
rs的指標會因為在刪除第一筆資料後,
檢查下一筆時因為同樣需要刪除,
導致指標可會指向錯誤而發生錯誤.
(後來確定是由於是使用同一個STMT,
所以當我刪除以後就會失去的原本的資料)

而我原本設計成如果到期,
則跳到另一個網頁刪除後再跳回,
想不到同樣會出現錯誤,
而最後我就想直接從rs的地方下手,
上網搜尋了以後發現了rs.deleteRow()函式,
此函是可以直接把目前rs指標指向的資料整筆刪除,
不過一開始要把stmt的rs權限設定為CONCUR_UPDATABLE,
讓它可以去改資料庫的內容,
然後把程式碼改成:
while(rs.next)
{
...
if(設定時間==目前時間)
{
rs.deleteRow()
}

}
這樣就可以直接把到期的商品資料做刪除的動作了.

2009年4月26日 星期日

本週進度

我本週預計先協助組員將每個商家的物品列表完成,
完成以後就可以開始設計商家RSS訂閱系統,
目前整組除了使用者方面的進度比較慢以外,
而商品和搜尋部分都很順利進行中,
較複雜的RSS和GOOGLE MAP部分也應該很快就可以開始進行.

商品到期機制

由於商家和上傳商品的部分尚未整合好,進階搜尋也已經完成,所以我就開始設計商品到期機制.
這個部分不難,主要的問題在於如何得到上傳商品的時間,
而這個功能可以用Calendar.getInstance()來得到系統目前時間,
不用像getyear()、getmonth()這樣分開來抓資料,
例如,
Calendar c=Calendar.getInstance( );
c.get(Calendar.YEAR);
可取得年.
又例如,
c.get(Calendar.MONTH);
可取得月.
所以我上傳商品的就寫入目前的時間和限制的日數,
然後當有使用者查看商品時,
就將上傳時的時間加上限制日數,
和查看時的時間來做比較,
如果相同就顯示商品到期,
不同就給予查看.
另外Calendar.getInstance()的詳細用法和欄位常數可以看這投影片:
點我!!!