Posted on 2009-11-01 11:28
kangaroo 閱讀(536)
評論(1) 編輯 收藏 所屬分類:
tech/ibatis
iBatis是一個中層的框架,它比jdbc的層次高一些(可以說,iBatis就是以XML的形式描述的jdbc代碼,它擁有許多jdbc所沒有的架構級的優點),但是對于對象/關系映射工具,層次又要低一些。
1. 釋放數據庫資源
使用jdbc時,很容易犯的錯誤就是獲取資源之后忘記正確地釋放它們。雖然垃圾收集進程最終可以釋放掉這些資源,但是這種做法非常耗時,并且無法得到保證。如果對象沒有別真正釋放,那應用程序最終將會因為耗盡了資源而崩潰。iBATIS框架能幫助管理這些資源,從而減輕應用程序對開發人員們的負擔
2. SQL注入
如果某個應用程序使用字符串拼接的方式來創建SQL語句,但是沒有正確地對參數進行轉義,那么惡意的用戶就可以通過傳遞一些特殊的參數來改變查詢原本的意圖。
例如:select * from product where id = 5.
如果5是用戶傳遞過來的參數,拼接到 id = 之后的。那么用戶就可以輸入"5 or 1 = 1",從而改變了整個SQL語句的意圖。如果用戶更壞一些,輸入"5;delete from orders",結果就是你的訂單表被清空了。
由于ibatis使用了preparedStatement,而PreparedStatement是不會受到此類攻擊影響的,所以使用ibatis可以使得你對應用程序的保護變得更加容易。
3. 降低復雜度