zjyzz 2013-03-07
ibatis的建立基于这样的思想:关系数据库和SQL仍然有用。应用程序可以被其它重写,但背后的SQL和数据库却基本保持不变。
ibatis是一个混合型的持久层的框架。ibatis结合了动态SQL、内联SQL、存储过程、对象关系映射的方案。
1.ibatis的核心是SQL。ibatis不直接支持DDL(create\drop\alter.......)。
2.存储过程。
3.内联SQL。将SQL嵌入到更加通用的语言中去,如Java的SQLJ。其实是使用一个预编译器将内联的SQL翻译为当前语言的响应代码。还有内联的SQL还不够标准,版本太多,移植性差。
4.动态SQL。即JDBC使用的方式。它的缺点:没有内联SQL的优雅和甚至比不上存储过程,使用这样的框架会带来大量的代码,且这些代码又具有重复性。
O/RM:和OOP历史一样的悠久。O/RM是基于一些假设和规则的,其中最普遍的就是数据库被适当的规范化了。
Ibatis的优点:page8---pdf18
1.外部化SQL。ibatis把原来JDBC中的动态SQL提出到外面的配置文件中。
2.封装化的SQL。使用XML来封装SQL,即在Xml元素中包含SQL语句,元素的名称和属性描述所写的SQL语句。
ibatis应用于持久层,又将持久层分为3层:抽象层、持久化框架(CURD)、驱动程序/接口层。
抽象层:为持久层提供一致有意义的接口。最常用的就是DAO模式。
如:对于sql语句order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id"。