發表文章

目前顯示的是 12月, 2006的文章

Loging 實務:log4j 設定檔範例

#設定 Logger(s),格式 logger_name = message_level, appender1, appender2, ... log4j.rootCategory=error, stdout #以下是給fileftp.java使用的專屬Category log4j.category.doftp.name=info, X #以下設定false時,訊息不會往rootCategory送,只會在doftp.name的自訂Categoey中 log4j.additivity.doftp.name=false #設定 Appenders #### First appender writes to console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n ### 設定doftp.name是RollingFile的方式 log4j.appender.X=org.apache.log4j.RollingFileAppender log4j.appender.X.File=doftp.log log4j.appender.X.MaxFileSize=300KB log4j.appender.X.MaxBackupIndex=2 log4j.appender.X.layout=org.apache.log4j.PatternLayout log4j.appender.X.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH:mm:ss} %m%n

測試預期的 Exception 行為

當某個方法我們預期會丟出 Exception 時, 可利用 fail 這個述詞來測試。 如以下的 JUnit 語法: public void testGetUserException() { User u = null; try { u = UserFetcher.getUser("ThisUserIdDoesNotExist"); fail("Should have gotten NoSuchUserException - used a bad user ID"); } catch (NoSuchUserException expected) { ; // Expected - intentional } }

組 SQL 字串時,加入 WHERE 1=1 條件,以增加組 SQL 字串彈性

若在一般程式語言存取關聯式資料庫,必須要組 SQL 字串,傳至後端的 DB Server,利用 WHERE 1=1,則可把條件句彈性的組合到 SQL 字串中,如下: strSQL = " select * "; strSQL +=" from employee "; strSQL +=" where 1=1 "; if(emp_no.length() > 0) { strSQL +=" and emp_no='"+emp_no+"' "; } if(emp_name.length() > 0) { strSQL +=" and emp_name='"+emp_name+"' "; } 上述程式碼動態要將條件語句加入到原本的 SQL 字串中,而不用考慮原本 SQL 字串的格式。

多個欄位的單一關鍵字查詢,請用 or 運算子

試想,若你希望使用者輸入一個關鍵字來查詢資料, 此關鍵字可以是員工代號,或是員工姓名,那麼也許你會執行兩次 SQL,並判斷兩次 SQL 是否有資料,以達到上述功能: SQL1: sqlstr = " select * from employee where 1 = 1 and emp_no = '#{keyword}'" SQL2: sqlstr = " select * from employee where 1 = 1 and emp_name = '#{keyword}'" 上述二個 SQL 可簡單的以 or 運算子合併成下式: SQL3: sqlstr = " select * from employee where 1 = 1 and emp_no='#{keyword}' or emp_name = '#{keyword}'" 如此一來除了更為簡潔,也讓原本要執行兩次 SQL 查詢,減為一次。

電腦可能遭受的攻擊分類

惡意程式: 電腦病毒:類似生物病毒必須依附在其它活體,電腦病毒必須依附在其它程式,感染其它程式來散佈 電腦蟲:透過網路自動感染其它主機 特洛伊木馬:可遠端控制其它主機 Web 的攻擊: DoS:癱瘓網路服務,使其無法提供服務