2012年2月15日 星期三

(暫存) PreparedStatement

PreparedStatement 的基本優點是程式碼好讀(不用自己拼字串)、提供一定程度的 SQL injection 防禦,還有有些資料說 PreparedStatement 效率比較高。

相關資源:
1. 官方文件
2. PreparedStatement & Statement 的差異
3. PreparedStatement 真的比 Statement 快嗎?

效率問題可以參考看看第三個連結,SELECT 狀況下大多是 Statement 比較快一點,不過下面回應有人說 PreparedStatement 主要是快在非 SELECT 的指令。(但話說資料庫最常用的指令應該是 SELECT 吧~XDDD)

範例程式碼可以參考:Using the Prepared Statement Twice

Cron Expression

參考資料:Lesson 6: CronTrigger

雖然說上面的參考資料是 Quartz 的文件,不過查 Wikipedia 時,查到的 Cron Expression 表達方法是一樣的,所以....應該 Linux 上的 cron 跟 Quartz 的 CronTrigger 用的都是同一套標準吧!(也許 Cron Expression 是公定的標準?我不太清楚 XD)

Cron Expression 的規則就看 Wiki 吧,這裡要特別記錄的是使用「/」記號的規則
在分鐘的欄位設定 3/20 表示的是「every 20th minute of the hour, starting at minute three」
也就是從第三分鐘開始,每個第 20 分鐘執行一次
而設定 /35 表示的並不是每隔 35 分鐘執行一次,而是同義於 0-59/35
也就是每個小時的 0 分開始算第 35 分鐘執行一次。
亦即實際執行時會是例如 1:35、2:35、3:35、.....,實際上會變成每小時執行一次。

PS. 這是我目前對 Cron Expression 的理解,如果有錯誤請指正!

2012年2月12日 星期日

透過 dex2jar 和 JD-GUI 反編譯 APK

因為某種需求,想知道某些程式是如何撈到資料的...
透過 web scrawler 的方式遇到蠻多阻礙,所以就試試看從 APP 著手
意外發現這個相當邪惡的玩意兒~囧

參考資料:Android 開發教學筆記 - 關於反組譯 Android 程式,還真的不用 30 秒就搞定!

2012年2月6日 星期一

Java 複製目錄

Java 內建沒有檔案複製的 API,原本想直接用 Linux 的 cp -r
(因為我們公司的環境是在 Linux 上跑 Java 的 Web Application)
但怎麼試都試不出在 Java 裡面透過 Runtime 來下 cp 可以把某個資料夾內所有檔案複製到指定目錄
好像是因為 Runtime 不能用 * 這種字元,然後改成寫 shell script 從 Java 呼叫也還是有問題
所以只好自己寫一個~
其實說是自己寫一個,因為實在懶得寫 XD,所以直接找了人家寫好的 code 來小改一下!

參考資料:JAVA COPY整個資料夾
整體結構跟上面連結的程式碼一模一樣,只是改了一點點 error handling 跟習慣的變數用法。