操作数据库,大家最熟悉的还是sql语句,而且调试sql语句也方便,favoor框架支持直接解析sql语句(包括嵌套的sql语句)操作java bean,通过支持范型,favoor无需对返回数据进行强制类型转换,favoor支持分页查询和分页控件,无需写任何js脚本,favoor的db标签支持sql语句和存储过程操作,只需提供值对象就能进行curd操作(存储过程需额外写点代码)。favoor支持sql语句和存储过程配置,并能对sql或存储过程进行动态格式化(带{0..N})。
favoor 目前缺乏对cache的支持,准备套用ejb 3.0的方式使用annotation方式,希望大家探讨,favoor在整理完代码后将开源
使用裸露sql语句的弊端!
1:严重绑定数据库!
2:丧失重构
3:暴露数据库结构
4:chache问题
5:migration 问题
6:接口管理困难
7:reuse不大
1:使用sql,必然严重绑定数据库结构,虽然说数据库结构相对稳定,但是也有变动的可能性,添加新表和级联更是经常发生,如果使用sql,意味着每次变动都有可能对业务做大量修改!
2:丧失重构,业务层的重构讲究业务逻辑和持久逻辑的松耦合,使用sql,注定接口oo性不强,业务接口会和持久接口匹配混乱!彻底丧失重构的可能性。
3:严重暴露数据库结构! --显而易见的问题,有安全隐患
4:针对sql的接口没有办法提供细力度的缓存。无法适应高性能,高复杂性的重用!
5:项目转平台的时候,由于没有o/r的支持,sql对数据库的依赖和接口重写带来的效益损失不可估计!
6:作过持久的人都知道。使用sql 模版的问题!不说了
7:自己做的轮子到底缺乏历练,一些高级特性,比如继承,模式都办法使用,必然会导致接口多而杂,有很多接口功能类似但是却自己做自己的事,性能损失很大