跳到主要內容

發表文章

目前顯示的是 2008的文章

IReport透過寫程式自訂功能

IReport是透過SQL進行資料的取得,所以很多邏輯都需要靠SQL來進行,有時候只是要進行一個資料的對應大部分都是透過join table進行,或是需要另一資料來源時就需要特別客製化應用程式等等,假如IReport可以呼叫Java程式那就非常之完美了,舉個例子說 原本在IReport中的SQL為 select a.name,b.className,c.countryName,a.telephone from student a ,class b,country c where a.id = b.id and a.id=c.id 若是b 跟 c不再同一個資料來源怎麼辦? 步驟 1.寫一隻Java程式可以連到其他資料來源,並把它包成jar檔案 2.將該jar檔案放在IReport的lib下 3.透過SQL去呼叫如 select name,test.ClassUtils.getClassName(id),test.CountryUtils.getCountry(countryId),test.TranUtils.translate(telephone) from student 這樣就可以了若是在搭配scriptlet方式進行那就真的很Power. P.S 應用程式使用時也只要把jar放在classpath也可以喔~~

玩玩DES及RSA

最近有個需求,就是希望能把儲存在文字檔中的密碼,增加一些安全機制,想說之前(參考JavaWorld@TW的一些資料)有玩過一下下DES及RSA說不定可以試試看,流程大概先產生一把KEY(DES)或是一對KEY(RSA),使用KEY針對資料進行加密,加過密的文字有可能會是非法字元,所以用BASE64進行encode或是decode,應用程式要使用加個密的資料,需要兩個要素第一個就是key,另外就是API,缺一不可(盡量防止Developer). DES部分 DESGenerator import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.SecureRandom; import java.security.spec.InvalidKeySpecException; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import entiebank.utils.Utils; public class DESKeyGenerator { public static void genDESKey(String keyFileName,String alg){ try { KeyGenerator kpg = KeyGenerator.getInstance(alg); //TODO Default alg maybe can change //SecureRandom random = SecureRandom.getInstance("SHA1PRNG","SU

IReport use stored procedure

很簡單 {call stored_procedure("param1" , "param2"...) } 這樣就可以了,會以回傳ResultSet的方式進行,下一步則可以看到回傳的欄位

JMeter設定JDBC連線測試

1.先將欲測試的JDBC驅動程式放在Jmeter/lib下 2.啟動Jmeter,滑鼠右鍵於【測試計畫】新增【執行緒群組】新增【設定元素】選擇【JDBC連線設定】相關設定說明如下 名稱:連線設定名稱 變數名稱:為該JDBC連線的變數,請以英數字為主 資料庫URL設定:欲連接的資料庫及JDBC的URL設定 JDBC驅動程式:欲測試的JDBC驅動程式的Driver名稱 使用者:資料庫連線使用者 密碼:上述使用者之密碼 其他設定可採用預設質或是依據所需進行設定 3.於【執行緒群組】新增【JDBC要求】相關設定如下 名稱:JDBC要求名稱 變數名稱:請使用JDBC連線設定的變數名稱 Query Type:請依所需使用囉 查詢:請輸入需要測試的SQL 4.於【執行緒群組】中【接聽】新增所需要看到的測試結果,例如檢視結果、檢視表格式結果等等 5.先測試相關設定有無問題,於【執行】中執行【開始】,在檢視結果中看看是否都是綠燈號誌 6.再依據所需於【執行緒群組】中設定測試數值再執行

SEQUOIA初體驗(一)

1.下載 SEQUOIA ( http://sequoia.continuent.org/HomePage ),有幾個版本可以下載 bin-install 的版本。 2. 安裝步驟如圖。 3. 安裝後先將安裝後的 SEQUOIA 路徑中 config 資料夾的 sequencer.xml 複製到 driver 資料夾(因為有個 case 需要使用到 JGroup 的 API 不過似乎該 API 有 IP 為寫死的)。 4. 複製所需的資料來源的 JDBC Driver 至 driver 資料夾,例如 MSSQL 的 jtds.jar 等等 5. 先透過該 API 提供的 demo 進行測試 5.1 執行 demo 資料夾中的 demo-raidb1.bat 啟動 HSQLDB ,分別啟動 9001 、 9002 及 9003 port 的 HSQLDB ( netstat -na ) 5.2 將 config\controller 資料夾中 controller.xml 換成 controller-raidb1.xml ,再執行 bin\controller.bat 5.3 執行 bin\console.bat ,若是有出現 localhost:1090> 表示相關設定無誤。可以試試幾個指令操作看看 admin myDB ,選擇要操作的 VirtualDatabase 輸入使用者( admin )及密碼(無) show backend * ,顯示目前所有的 backend initialize localhost1 ( backend 名稱) force enable * ,啟動全部的 backend ※要先要 initialize backend 後方可 enable 6. 進行研究 RAIDb-0 模式(同一資料來源)( Full partitioning of database ) l 同一個資料來源( MSSQL ),兩個資料庫(database1及database2)設定檔如下 l 直接執行 bin\controller.bat (請修改 controller.xml 的對應) l 啟動 console.bat 進行確認 admin myDB ,選擇 VirtualDatabase admin ,使用者 無,密碼 s

瀏覽器霸主爭奪戰Google Chrome

Google Chrome Beta版本終於出來了 http://www.google.com.tw/webhp?rls=ig 嚐鮮的畫面 我比較感興趣的地方---開發人員選項 檢視原始碼 JavaScript偵錯 JavaScript控制台 工作管理員 整體效能初試很明顯的比FireFox3 & IE7好很多,不過還要長時間的玩玩看才知道

八月十五日大事紀

八月十五日發生了很多事情,所以就一次記錄下來啦 1.早上去考SCBCD5.0,考過了,很早就準備了,一直再猶豫要考EJB2.1或是EJB3.0,後來還是聽從Browser的建議考SCBCD5.0,幸好所有的辛苦都是值得的。 2.考完試,等公車的時候看到了刮刮樂,直覺會中就買了一張,果真中了300元,再買一張又中100元,感覺好運一直來喔。 3.回家看棒球,差一點砸電視,居然輸給大陸,而且還是在贏4分下輸輸去,整個心情當下來了。 4.陳水扁事件也佔了新聞的一大篇幅,感覺也不是很好。畢竟這幾年大家過的不太好,他還這樣搞不是很嘔嗎?

IReport字型下拉選單中文亂碼

這個問題其實也不是很大啦,不過當你有很多的中文字型檔的時候可能就不知道要選哪一個,啟動IReport後,開啟報表後會發現左邊下拉選單中,最下面的字型清單中有出現方框,顯示不出該字型的名稱,這幾個字型應該是判斷新細明體,標楷體及細明體,如下圖 下載IReport的Source Code來檢查一下,it.businesslogic.ireport.gui.MainFrame發現這個JComboBox有特別設定Arial字型,當然只要是中文的都顯示不出來ㄚ,所以點掉這一行後重新編譯,嘿嘿就可以了。 jComboBoxFont.setFont(new java.awt.Font("Arial", 0, 11)); 我目前使用的版本為 IReport-3.0.0-src

試用GAE

上星期六參加 Google Developer Day 2008,因為我對 Google Application Engine還滿感興趣的,所以都參加有關GAE的議程,有些收穫,不過還是希望GAE能出Java版﹝就場上回覆的曖昧我想是有機會的﹞。以下是我使用 GAE的一些環境建置步驟,另外我在實機操作時遇到一個問題無法上傳我的應用程式,知道是網路問題可是換了無線網路也是一樣,不過我的NB有另外安裝 Fedora,那個環境就可以傳,所以想說是我作業系統的問題,不過我昨天在家裡試了一下,嘿嘿可以了,可是我已經重灌作業系統,雖然我猜想是Proxy 的問題,因為錯誤訊息好像是死在以下這段 def _GetAuthToken(self, email, password): """Uses ClientLogin to authenticate the user, returning an auth token. Args: email: The user's email address password: The user's password Raises: ClientLoginError: If there was an error authenticating with ClientLogin. HTTPError: If there was some other form of HTTP error. Returns: The authentication token returned by ClientLogin. """ req = self._CreateRequest( url="https://www.google.com/accounts/ClientLogin", data=urllib.urlencode({ "Email": email, "Passwd": password, "service": "ah", "source": "Google-appcfg-1.0", &q