Posted on 2009-11-01 11:28
kangaroo 阅读(525)
评论(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. 降低复杂度