 |
上一主题
在我理解业务对象是一个系统的基础,就像盖房子中的砖头,砖头的形状变了搭建房子的方法也就改变了,同样业务对象的结构改变了,系统的架构和设计也就改变了。所以应该是设计的基础。
再来说DTO,字面理解看,..
|
|
下一主题
用的是weblogic8.1,报这个异常时,还是能正常使用的,我怕以后上线后,用户多后出问题.很急啊.那位帮我解答一下
|
|
|
|
Favoor框架开发
|
2007年04月03日 11:18
|
|
|
标签列表
开源软件(60)
|
|
简单才是硬道理,java和.net相比就是喜欢把简单的东西复杂化。 操作数据库,大家最熟悉的还是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在整理完代码后将开源
更多favoor框架内容请访问www.favoor.net
|
|
|
|
|
|
re:Favoor框架开发
|
2007年04月03日 11:21
|
|
|
以下代码时crud操作: private SQLAccessor<UserForm> action = new SQLAccessor<UserForm>(); //添加操作 public int insert(UserForm userForm) throws DBProcessException, SQLException{ return action.execute(StmtFactory.getSql("user.inset"), userForm); } //更新操作 public int update(UserForm userForm) throws DBProcessException, SQLException{ return action.execute(StmtFactory.getSql("user.update"), userForm); } //删除操作 public int delete(UserForm userForm) throws DBProcessException, SQLException{ return action.execute(StmtFactory.getSql("user.delete"), userForm); } //查询操作 public UserForm query(UserForm userForm) throws DBProcessException, SQLException{ return action.query(StmtFactory.getSql("user.query"), userForm, UserForm.class); } //分页查询 public Result<UserForm> result(UserForm userForm) throws DBProcessException, SQLException{ return action.result(StmtFactory.getSql("user.result"), 1, UserForm.class); }
|
|
|
|
|
|
re:Favoor框架开发
|
2007年04月03日 11:22
|
|
|
favoor标签使用(动态分页查询):
<f-sql:result var="result" beanClazz="net.favoor.demo.UserForm" currPage="currPage" where="true">
<f-sql:sql key="user.split.page"> <f-db:format type="String">{0}</f-db:format> <f-db:format type="int"><f-db:endRow/></f-db:format> <f-db:format type="int"><f-db:startRow/></f-db:format> </f-sql:sql> <f-db:dynamicFormat prepend="AND"> <f-db:isNotEmpty property="email" prepend="AND"> EMAIL LIKE ? </f-db:isNotEmpty> <f-db:isNotEmpty property="nickname" prepend="AND"> NICKNAME LIKE ? </f-db:isNotEmpty> </f-db:dynamicFormat> <f-db:params> <f-db:param type="string" dynamicProperty="email">%<c:out value="${param.email}"/>%</f-db:param> <f-db:param type="string" dynamicProperty="nickname">%<c:out value="${param.nickname}"/>%</f-db:param> </f-db:params> <f-sql:count where="true"> <f-sql:sql key="user.count"/> </f-sql:count> </f-sql:result>
|
|
|
|
|
|
re:Favoor框架开发
|
2007年04月03日 12:19
|
|
|
操作数据库,大家最熟悉的还是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:自己做的轮子到底缺乏历练,一些高级特性,比如继承,模式都办法使用,必然会导致接口多而杂,有很多接口功能类似但是却自己做自己的事,性能损失很大
|
|
|
|
|
|
re:Favoor框架开发
|
2007年04月03日 12:27
|
|
|
调试简单,我也不敢恭维!
反正使用sql模版开发小中型以上的项目都是不可能的,拿钱当水漂!而且关于事务控制和线程上的台阶比任何一个o/r工具都要高很多!
但是做为一个扩展支持还是不错的,毕竟o/r的query远没有sql强大,在一些统计需求里sql还是必须的
|
|
|
|
|
|
re:Favoor框架开发
|
2007年04月03日 13:45
|
|
|
|
favoor的目标就是针对小中型的系统开发,在没有or映射之前,那些系统不照样开发出来了,因为我们目前的很多项目都是这方面的,不需要跨数据库,开发时限短,不可能为了几年后的需求而去做大,因为几年后有没有数据库都不知道了
|
|
|
|
|
|
回复:re:Favoor框架开发
|
2007年04月04日 10:32
|
|
|
>favoor的目标就是针对小中型的系统开发,在没有or映射之前,那些系统不照样开发出来了 >因为我们目前的很多项目都是这方面的,不需要跨数据库,开发时限短,不可能为了几年后的需求而去做大
维护性拓展性不是说为将来未知的需求留下余地,这种观点有夸大拓展性,维护性和拓展性也是指一些很小的功能修修补补。
换个思路,如果有另外一种选择:既能为发展到未来留下余地,又能够达到快速开发,为什么不选择两全其美的方式,如gails RoR或JF等。
楼主开发"Favoor框架"勇气可嘉,用于探索精神值得肯定,如果再结合新的软件思想,必然功德无量。
[该贴被banq于2007年04月04日 10:44修改过]
|
|
|
|
|
|
re:Favoor框架开发
|
2007年04月05日 01:43
|
|
|
|
|
|
|
热点TAG:
AOP
cache
缓存
DDD
EJB
集群
设计模式
Hibernate
IOC
JiveJdon
OO
RBAC
Seam
Spring
Struts
anti spam
|