JiveJdon Community Forums
在线304人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 7 回复 / 1
 发表新帖子   回复该主题贴
jacek

悄悄话
发表文章: 7
注册时间: 2007年01月07日 23:34
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

jacek

悄悄话
发表文章: 7
注册时间: 2007年01月07日 23:34
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);
}
jacek

悄悄话
发表文章: 7
注册时间: 2007年01月07日 23:34
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>
zuly

悄悄话
发表文章: 56
注册时间: 2007年03月29日 11:42
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:自己做的轮子到底缺乏历练,一些高级特性,比如继承,模式都办法使用,必然会导致接口多而杂,有很多接口功能类似但是却自己做自己的事,性能损失很大
zuly

悄悄话
发表文章: 56
注册时间: 2007年03月29日 11:42
re:Favoor框架开发 2007年04月03日 12:27 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
调试简单,我也不敢恭维!

反正使用sql模版开发小中型以上的项目都是不可能的,拿钱当水漂!而且关于事务控制和线程上的台阶比任何一个o/r工具都要高很多!

但是做为一个扩展支持还是不错的,毕竟o/r的query远没有sql强大,在一些统计需求里sql还是必须的
jacek

悄悄话
发表文章: 7
注册时间: 2007年01月07日 23:34
re:Favoor框架开发 2007年04月03日 13:45 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
favoor的目标就是针对小中型的系统开发,在没有or映射之前,那些系统不照样开发出来了,因为我们目前的很多项目都是这方面的,不需要跨数据库,开发时限短,不可能为了几年后的需求而去做大,因为几年后有没有数据库都不知道了
banq

悄悄话
发表文章: 9528
注册时间: 2002年08月03日 17:08
回复:re:Favoor框架开发 2007年04月04日 10:32 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>favoor的目标就是针对小中型的系统开发,在没有or映射之前,那些系统不照样开发出来了
>因为我们目前的很多项目都是这方面的,不需要跨数据库,开发时限短,不可能为了几年后的需求而去做大

维护性拓展性不是说为将来未知的需求留下余地,这种观点有夸大拓展性,维护性和拓展性也是指一些很小的功能修修补补。

换个思路,如果有另外一种选择:既能为发展到未来留下余地,又能够达到快速开发,为什么不选择两全其美的方式,如gails RoR或JF等。

楼主开发"Favoor框架"勇气可嘉,用于探索精神值得肯定,如果再结合新的软件思想,必然功德无量。



[该贴被banq于2007年04月04日 10:44修改过]
jacek

悄悄话
发表文章: 7
注册时间: 2007年01月07日 23:34
re:Favoor框架开发 2007年04月05日 01:43 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
谢谢banq 大哥的中肯建议
这个主题有 7 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  每2分种自动备份发贴内容Ctrl-V粘贴取出,提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam