在业务方法中直接嵌入SQL语句,SQL语句是面向关系的,依赖于关系数据模型。这给应用程序带来以下缺点:
1、实现业务逻辑的代码和数据库访问代码掺杂在一起,使程序结构不清晰,可读性差。
2、在程序代码中嵌入面向关系的SQL语句,使开发人员不能完全运用面向对象的思维来编写程序。
3、业务逻辑和关系数据模型绑定,如果关系数据模型发生变化,那么必须手工修改程序代码中所有相关的SQL语句,这增加了维护软件的难度。
4、如果程序代码中的SQL语句包含语法错误,在编译时不能检查这种错误,只有在运行时才能发现这种错误,这增加了调试程序的难度。
为了使程序中的业务逻辑和数据访问细节分离,在Java领域已经出现了好几种现成的模式:
1、业务逻辑和数据访问耦合。
2、ORM(Object-Relation Mapping)模式。
3、主动域对象模式。
4、JDO(Java Data Objects)模式。
5、CMP(Container-managed Persistence)模式。
——孙卫琴《精通Hibernate:Java对象持久化技术详解》P25