1.混合型的持久层解决方案
1.1 ibatis的根源
不同的数据库访问方法,以及ibatis从每种方法中吸取的优秀思想
- SQL:DDL(不推荐执行,应该由数据库管理并控制),DML
- 老式存储过程:两层设计,调用存储过程
- 现代存储过程:通常被当作来自中层的远程过程调用(RPC)。
- 内联SQL:将SQL从数据库移入应用程序代码。
- 动态SQL:避免使用预编译器来解决内联SQL存在的问题
- O/RM
1.2 理解ibatis的优势
- 外部化的SQL:最自然的方式书写SQL
- 封装化的SQL:使用XML来封装SQL
<select id="categoryById"
parameterClass="string" resultClass="category">
SELECT CATEGORYID, NAME, DESCRIPTION
FROM CATEGORY
WHERE CATEGORYID = #categoryId#
</select>
2.ibatis适合应用在何处(持久层)
2.1 业务对象模型
领域类,数据传输类
2.2 表现层
2.3 业务逻辑层
2.4 持久层
- 抽象层:为持久层提供一致且有意义的接口
- 持久化框架:提供用于存储、获取、更新、查找以及管理数据的方法
- 驱动程序/接口层
2.5 关系数据库
数据完整性,性能(设计,软件调整,硬件),安全性
3. 使用不同类型的数据库
数据库的划分更多的是依据它与其他系统的关系
3.1 应用程序数据库
通常与应用程序处于同一个项目,两者一齐设计和实现。
3.2 企业数据库
3.3 私有数据库
3.4 遗留数据库
4. 数据库的常见问题
4.1 所有权与控制
4.2 被多个分散的系统访问
ibatis作为持久化框架对所有类型的系统都有用