jdon 解惑授道,企业信息化解决之道
 

热点Tag: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts

Jdon框架演示

JiveJdon3.0
源码下载

GoF设计模式

在线教程

社区精彩讨论












使用hibernate是使用oracleA存 

作者:mythmoon 发表时间:2005年12月28日 09:22 回复此消息回复

原贴网址: http://www.jdon.com/jivejdon/thread/24451.html

         使用Hibernate是使用oracleA存
   在JDON 逛了许久,学到了很多东西,在专注与技术的同时,知道还要关注架构,关注模式.
   最近要进行架构选择的时候,我在想用tapestry+spring+hibernate;还是tapestry+spring+oracle预存了!
同样Hibernate 和oracle预存了!都可以对隔离对上层对数据库的 直接操作,对象观点当然是选择Hibernate了,但是要做报表的话,就麻烦了!报表通过预存的话,可以做出很多复杂的功能,用Hibernate的话就比较麻烦了.呵呵!
   结合我门公司的情况.oracle预存是每个员工的基本技能,高手多的是(我不会,汗!).
   "使用数据库黑匣子"比"使用Hibernate黑匣子"就好多了,对上层的隔离也很好!速度和效率都都保证!维护也方便!升级也方便.
   但是,如果要换调数据库的话旧案麻烦了.但是到连数据库都想换掉,语言恐怕也要换了!

   因此,我选用oracle预存放架构!


_________________________________________________________
仅仅是个选择,渴望大虾门!指点!

Re: 使用hibernate是使用oracleA存  发表: 2005年12月28日 10:47 回复
banq 发表文章: 8914/ 注册时间: 2002年08月03日 17:08
>使用数据库黑匣子"比"使用Hibernate黑匣子"就好多了
我认为这是错误的观点,hibernate等代表的持久层框架是透明的,是和我们的domain model相关的,如果使用oracle 预存,将会容易导致走向面向数据库的系统,就象很多人总是会用C++编制非对象化程序一样。

熟悉这条路,就容易过重依赖这条路,又回答过去可维护性差 可拓展差的老局面。

数据库只是和文件系统/LDAP等一样,是一个持久化载体,不是我们真正关注的,就象张艺谋拍的那些乡土电影,并不是就落后农村说事,而是将其作为载体,有更高的寓意。数据库就是张艺谋电影的乡村载体。

将更多设计概念(缓存等)从数据库上脱离出来,让数据库纯粹变成一个具体的产品,而且应该是可更换的产品,数据库产品发展到现在差异很小,google搜索一下文章报道,连开源MySQL已经可以和Oracle媲美了,IBM的DB2都开源了,都什么年代了,还相信那些Sales的说辞。

当然,不是一定要选择Hibernate, oracle的TopLink也和Hibernate一样是一个持久化框架,而且是最早的,被它收购了。


Re: 使用hibernate是使用oracleA存  发表: 2005年12月28日 13:00 回复
mythmoon 发表文章: 207/ 注册时间: 2005年03月21日 01:09
谢谢!bang的回复!
上面的道理我也明白啊!所以在选择的时候,才有这个疑问!
但关键的是,还有一个很重要的需求就是报表,特别是比较复杂的动态(传递参数)报表!
用预存很好解决(公司高手也多),用持久化工具,就不好解决了!

Re: 使用hibernate是使用oracleA存  发表: 2005年12月28日 14:43 回复
banq 发表文章: 8914/ 注册时间: 2002年08月03日 17:08
>比较复杂的动态(传递参数)报表,用预存很好解决
动态报表基本是各种条件的查询,持久化工具对复杂查询是不太行,需要专门优化框架。

Re: 使用hibernate是使用oracleA存  发表: 2005年12月29日 11:08 回复
blueoxygen 发表文章: 52/ 注册时间: 2005年06月26日 11:49
公司预存做的顺手 高效 还有经验就用预存么。这也是为什么ibatis有生存空间。很多时候我们面对的是遗留系统的整合 重构,还有就是一些关键系统大多数逻辑都由db做了,比如oracle PL/sql开发的。
我倒是建议你看看ibatis,DB高手写预存,留接口给java写业务的。

Re: 使用hibernate是使用oracleA存  发表: 2005年12月29日 21:09 回复
mythmoon 发表文章: 207/ 注册时间: 2005年03月21日 01:09
  就目前,公司的状况预存方案!还是最适合的!我要的是"黑匣子"
I可以做"黑匣子"吗?用在页面的话!就失去了我用tapestry的用意了!

Re: 使用hibernate是使用oracleA存  发表: 2005年12月29日 21:09 回复
mythmoon 发表文章: 207/ 注册时间: 2005年03月21日 01:09
我要页面很"干净",不影响美工!

Re: 使用hibernate是使用oracleA存  发表: 2005年12月30日 09:18 回复
blueoxygen 发表文章: 52/ 注册时间: 2005年06月26日 11:49
我说的东西和美工和页面没关系
如果想在现有方案下让你的service层与DB层更漂亮点 你看看iBatis吧,用不了你1个小时时间就会了,因为你们都是call 预存么。ibatis配置上也很简单。Hibernate需要很强的OO分析设计能力才能用漂亮,ibatis不用,他是对sql的封装,同样是类似


// 在此输入java代码
private String resource=
"com/mitsubishi_motors/april/maintenance/db/ibatis.xml";
private Reader reader;
//private SqlMapClientBuilder xmlBuilder;
private SqlMapClient mySqlMap;
reader = Resources.getResourceAsReader(resource);
mySqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
mySqlMap.startTransaction();
GeneralMsg msg = new GeneralMsg();
msg.setMsgID(
"301");
msg.setMsgTitle(
"ibatis");
msg.setMsgContent(
"ibatis bt o ");
int rows = mySqlMap.update(
"updateMsg",msg);
mySqlMap.commitTransaction();

是不是和Hibernate用起来很像,但是底层是写的sql,也就是他的映射文件是SQL 也可以call procedure。所以感觉很适合你们。

Re: 使用hibernate是使用oracleA存  发表: 2005年12月30日 09:56 回复
mythmoon 发表文章: 207/ 注册时间: 2005年03月21日 01:09
非常感谢blueoxygen !
看来我又要熬夜了哦!看iBatis!昨天下载了还没看.现在代理同事(事假)的工作,比较忙点!
我在想iBatis对改进直接传参数CALL,对隔离封装"黑匣子"是否更好了.

我先去试试


Re: 使用hibernate是使用oracleA存  发表: 2005年12月30日 12:25 回复
banq 发表文章: 8914/ 注册时间: 2002年08月03日 17:08
iBatis也是一个恰当折衷的选择,Jdon的JPetstore是使用Struts+jdon+ibatis编写的,利用Jdon框架的批量查询缓存特性,结合iBatis对SQL语句的缓存,两种粒度不一样,所以才有网友对Jdon的Jpetstore运行性能感觉很快的评论。

Jdon Jpetstore源码和演示:
http://www.jdon.com/jdonframework/app.htm

Re: 使用hibernate是使用oracleA存  发表: 2005年12月30日 14:13 回复
zdbj2ee 发表文章: 44/ 注册时间: 2003年08月29日 09:14
用ibatis吧,这个东西在做复杂系统时可用

Re: 使用hibernate是使用oracleA存  发表: 2005年12月31日 10:12 回复
mythmoon 发表文章: 207/ 注册时间: 2005年03月21日 01:09
用于隔离SQL在确实不错!

Re: 使用hibernate是使用oracleA存  发表: 2006年01月04日 14:02 回复
mythmoon 发表文章: 207/ 注册时间: 2005年03月21日 01:09
非常感谢,大家的建议!是我会在去思考一些问题,而不是架构本身!
谢谢!

―――――――――――――――――――――――――――――――――――
设计需要用时间来沉淀,建筑、服装都是如此,软件产品也一样……
夏昕

Re: 使用hibernate是使用oracleA存  发表: 2006年01月04日 15:02 回复
banq 发表文章: 8914/ 注册时间: 2002年08月03日 17:08
再给你一个本站2003年的iBatis连接:

http://www.jdon.com/jive/article.jsp?forum=62&thread=9671

Re: 使用hibernate是使用oracleA存  发表: 2006年01月19日 16:52 回复
roc 发表文章: 1/ 注册时间: 2006年01月19日 16:42
对于数据库SQL很熟悉的程序员来说,用iBATIS是个很不错的选择,对于一个很负责的查询,例如多表联欢,还有对某些字段内容的特殊显示(对字段内容进行分割,计算,字典代码转换等等),sql高手们可以很轻松的在sql语句中利用数据库自带函数或自定义函数直接查询得到最终要显示给用户的结果......
在系统实现代码中能有更大更多的自由度。
当然,这些会有系统移植到不同数据库的成本代价,不过,系统要换数据库的事情不是经常会发生的。

这个主题共有 17 回复 / 2 页 [ 1 2 下一页 ]
 
上一篇: 请教在Composite模式里的例子 下一篇: 一个关于权限读取时间的问题
 
查询本论坛 最热门帖子
快速发表回复:
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 
联系我们 | 关于我们 | RSS订阅 | 广告联系 | 网站地图 | 设为首页
Copyright (C) 2002-2007 Jdon.com, All Rights Reserved 版权所有 上海解道计算机技术有限公司
沪ICP备05018152号 如有意见请与我们联系 Powered by JdonFramework