写两个不同的Hibernate配置文件,分别连接不同的数据源,在Configuration的时候指出配置文件名,分别配置为不同的JNDI名称,这样可以在程序里面同时处理对两个数据库的操作。

Thanks!

呵呵

我想,老是排斥HIBERNATE的人,一般分为两种

第一种,他是项目经理,面对新技术,有畏惧心理,因为那是成本,公司不太可能白花钱让你学技术,选择新技术要慎之又慎,所以有一些抗拒心理是理所当然的,不过随着时间的推进,这种顾虑会越来越少

第二种,可能是前期长期学习的知识一下被别人全部概括,本以为很充实的大脑被几句代码概括,那确实是很接受不了,所以双手抵挡,情愿用自己过时得不得了的冗余代码来维持自己的自信心

其实,用过,看过hibernate的人,都应该为能有这么有一个完全封装JDBC的API而感到庆幸,做项目的可以专注于业务的处理(这个目的和EJB不谋而合),爱学习的人也可找到自己的一个新目标。

学习成本的问题,我不知道其他人怎么样,反正我是白天上班,晚上看文档,大概1周开始用hibernate做项目,这样学习成本所能带来的便利岂是疲于奔命的写SQL语句所能比拟的???

苦海无涯,回头是岸

其实新技术就是这样,EJB到现在还有人在骂,HIBERNATE也一样,等到有更好的技术出来了,我会毫不犹豫的放弃HIBERNATE、EJB,否则,时间这东西,可不等你

可能会打击到一批人,不过请讲谅,只要不骂人,我们可以继续讨论

呵呵

我想,老是排斥HIBERNATE的人,一般分为两种

第一种,他是项目经理,面对新技术,有畏惧心理,因为那是成本,公司不太可能白花钱让你学技术,选择新技术要慎之又慎,所以有一些抗拒心理是理所当然的,不过随着时间的推进,这种顾虑会越来越少

第二种,可能是前期长期学习的知识一下被别人全部概括,本以为很充实的大脑被几句代码概括,那确实是很接受不了,所以双手抵挡,情愿用自己过时得不得了的冗余代码来维持自己的自信心

其实,用过,看过hibernate的人,都应该为能有这么有一个完全封装JDBC的API而感到庆幸,做项目的可以专注于业务的处理(这个目的和EJB不谋而合),爱学习的人也可找到自己的一个新目标。

学习成本的问题,我不知道其他人怎么样,反正我是白天上班,晚上看文档,大概1周开始用hibernate做项目,这样学习成本所能带来的便利岂是疲于奔命的写SQL语句所能比拟的???

没缺点的东西是不可能有的,比如要写配置文件,我就觉得是一个缺点,虽然有XDOCLET帮忙,但还是麻烦,如果有可视开发就更爽了,暂且也算一个缺点吧

苦海无涯,回头是岸

其实新技术就是这样,EJB到现在还有人在骂,HIBERNATE也一样,等到有更好的技术出来了,我会毫不犹豫的放弃HIBERNATE、EJB,否则,时间这东西,可不等你

可能会打击到一批人,不过请讲谅,只要不骂人,我们可以继续讨论

> 你对EJB规范的理解出了偏差!
>
> EJB规范说的是不应该在EJB里面使用IO,而且事实上也的确如
> 耍返睦此凳EJB Class
> Loader级别不能读写外部配置文件。
>
> 如果把EJB和Hibernate打包成EAR发布,实际上Hibernate里面
> 呐渲梦募EJB的一部分,在EAR的deploy过程中被EJB
> Class Loader
> load进入内存,在EJB的执行过程,并没有外部IO操作,而是?> 粹内存操作。
>
> 如果把Hibernate配置到App
> Server的CLASSPATH里面,使用Singleton或者JNDI来获得Sess
> onFactory的话,那么并没有EJB的IO过程。在EJB的执行过程?> ,EJB Class Loader找不到Hibernate,向上找,交给App
> Class Loader去找,而App Class
> Loader找到Hibernate,并且读入Hibernate配置文件。这并不
> EJB本身的IO。
>

Robbin, 一个是Manifest classpath方式,一个是App Classpath方式,上次我说的优缺点已经被你驳倒了一个,你能不能谈谈两种方式的优缺点。

是不是可以从 支持热布置,空间占用,便于管理,维护等角度来比较呢?

另外,我以前试过,这两种方式好象不能共存,应该也是因为classloader的hierarchical的原因。有一点点不敢发言了 :Q

Re: 大家都在讨论Hibernate,难到他没有缺点??? 发表时间: 2003年09月05日 16:46:41 回复

>> 不是标准是缺点。
制订一个标准,然后大家的产品都不兼容,这叫做灾难!

>>想用,就需要学习,是缺点。
我晕!照这么说,知识就是缺点!

>>用了,就得永远使用它的鼻孔出气,也是缺点。
我再晕!你用了电脑,就一辈子使用它的鼻孔出气,也是缺点,所以我们大家不要用电脑了。

>>还有,如果用了Hibernate ,ApplicationServer用什么,好像tomcat就可以了。
我n多次强调,Hibernate是JDBC的轻量级封装,凡是你用JDBC的地方,都可以用Hibernate。照你这么说,用了JDBC,ApplicationServer还用什么?

>>但是,凡是大的项目,商业的项目,都不可能用Tomcat。那就用Weblogic ,WebSphere ,iplanet 。十来万的application Server,由于Hibernate搞掂了一切而成为摆设,你只是用它作为Servelet引擎,数据库连接池,其实是当Tomcat用了岂不可悲?我想这也是缺点。

这说明你根本不了解什么叫做App Server,你只把App Server === Servelet Container + 数据库连接池 + EJB Container。简直可笑!

>>一旦用了Hibernate,这个自成一体的东西,如果有一天你回心转意,决定回到EJB上来,你会发现它很难和EJB容在一起,你不得不全面彻底改写。
无语!没有用过的Hibernate的人在狂言呓语!

>>反过来,如果我是采用JSP,Servlet,JavaBean,Taglib来根据CoreJ2eePattern来组织应用,在合理规划的前提下,只需要加入新的持久层,就可以了,修改虽然不可避免,但应该不用彻底修改。

你真的理解什么是持久层了吗?你真的知道包含Hibernate的持久层应该怎么设计吗?

__________________
E-mail: robbin_fan@yahoo.com.cn
Homepage: http://www.fankai.com/


robbin

发表文章: 351
注册时间: 2003-06


Re: 大家都在讨论Hibernate,难到他没有缺点??? 发表时间: 2003年09月05日 16:53:39 回复

如果你对Hibernate持有异议,如果你觉得Hibernate有缺陷,那么拜托你的帖子有点深度好不好?我也很想知道Hibernate有哪些缺陷,曾经以为的很多缺点都随着对Hibernate的功能的进一步了解而解除了。目前我对Hibernate确实有一个还没有搞清楚的问题,我不知道这是不是Hibernate的缺陷,但因为没有足够的测试环境,所以还不能确定,因此不敢乱说。

但对于那些连Hibernate都没有怎么用过,对J2EE整个软件架构设计都不甚了了,甚至对App Server都缺乏正确的认识的情况下,胡乱发表批评意见,我对这种夸夸其谈的肤浅的态度感到愤怒。

__________________
E-mail: robbin_fan@yahoo.com.cn
Homepage: http://www.fankai.com/


windman

发表文章: 27
注册时间: 2003-05


Re: 大家都在讨论Hibernate,难到他没有缺点??? 发表时间: 2003年09月05日 17:10:18 回复

Robbin,说那么多名词,懒人们不懂,简单点说吧Hibernate就是JDBC,能用到JDBC的地方就能用它,用JDBC就会封装数据库操作,Hibernate就是个最好的封装框架,省得自己花功夫了

吓死我了。呵呵

最近,JavaWorld宣布了其2003年度编辑选择奖,Hibernate荣膺最佳数据存取工具奖。

以下是具体的评选结果:
最佳Java数据存取工具奖
CocoBase Enterprise O/R 4.5, Thought Inc.
Hibernate 1.2.4, hosted by SourceForge.net
Oracle 9iAS TopLink, Oracle
最佳Java IDE
Borland JBuilder 8.0, Borland Software
Eclipse 2.1, Eclipse.org
IntelliJ IDEA 3.0, JetBrains
最佳Java性能监视、测试工具
JProbe 5.0, Quest Software
JUnit 3.8.1, JUnit.org
Optimizeit Suite 5, Borland Software
最佳应用服务器
BEA WebLogic Server 8.1, BEA Systems
IBM WebSphere Application Server 5.0, IBM
JBoss 3.0, JBoss.org
最佳Java设备应用开发工具
IBM WebSphere Studio Device Developer 5.0, IBM
Java 2 Platform, Micro Edition (J2ME) Wireless Toolkit 2.0, Sun Microsystems
Sun ONE Studio 4 Update 1 Mobile Edition, Sun Microsystems
最佳Java-xml工具
JAXB (Java Architecture for XML Binding), Sun Microsystems
Xalan-Java 2.5, The Apache XML Project
Xerces2 Java Parser 2.4, The Apache XML Project
最佳Java安装工具
InstallAnywhere 5, Zero G
InstallShield MultiPlatform 5, InstallShield
Java Web Start 1.2, Sun Microsystems
最佳Java书籍
Java Development with Ant, Erik Hatcher and Steve Loughran, Manning Publications
Java Performance Tuning, Second Edition, Jack Shirazi, O'Reilly
Patterns of Enterprise Application Architecture, Martin Fowler, et al., Addison-Wesley
最有用的Java社区开发的技术
Apache Ant 1.5, The Apache Ant Project
Eclipse 2.1, Eclipse.org
Tomcat 4.1, The Apache Jakarta Project
Most Innovative Java Product or Technology
AspectJ 1.0.6, Eclipse.org
Eclipse 2.1, Eclipse.org
JavaServer Faces, Java Community Process (Java Specification Request (JSR) 127)

有些人不明白hibernate的定义。
Hibernate的官方定义:Hibernate是用来为应用层提供数据持久服务(持久对象)的。

把Hibernate放在EJB里面的好处就是限制Hibernate的作用范围而已,不让别的应用受到它的干扰,比如说Web App就调用不到Hibernate。

上面那个不是2003 Eidtor Choice,而是Candidate,所以每项都有3个产品候选,持久层工具最后中选的是TopLink,不过候选的Hibernate版本也够低的了,因为报名的时候,Hibernate2.0还是Beta版。

给上面那些批评Hibernate的人:

如果你要否定Hibernate,请拿出你的真知灼见!!!我很喜欢那些真正高水平的帖子,能够启发我的思维,也能够增加我对Hibernate的掌握程度;但是如果你既不了解Hibernate,又随随便便发表一些毫无技术含量的帖子,非但否定不了Hibernate的价值,反而会让别人看扁你。

如果你对Hibernate没有偏见,认真研究过Hibernate,对对象持久层设计有自己的心得,我很愿意和你交流经验,如果你对Hibernate就是有一股无法遏制的排斥和偏见,那么我对你唯一的劝告就是远离Hibernate,不要在Hibernate上浪费你宝贵的时间了!!!

请大家指教。 发表时间: 2003年08月06日 09:14:56 回复

在JSP页面中,进行声明变量。我发现s只初始化一次(就算关闭浏览器S的值还是存在),符合我的想法。

问题: s的值什么时候取消??

<!String s=null;><%if(s==null)s="ddddddddddddddd";elseout.print("存在数据");%>

robbin

Re: 请大家指教。 发表时间: 2003年08月06日 09:26:05 回复

不要用 这个标记,这个标记声明的是静态变量。

__________________
E-mail: robbin_fan@yahoo.com.cn
Homepage: http://www.fankai.com/


raynix

初始化当然只有一次了,顾名思义么,呵呵。


在<%! %>中定义的reference的生存期等同于此servlet/jsp本身,所以这个s要等到_jspDestroy()被调用才消失,一般来说,就是此app被关闭或reload之时。


"就算关闭浏览器S的值还是存在", 呵呵,服务器端的obj是生存在浏览器中么?


raynix

发表文章: 133
注册时间: 2003-06


Re: 请大家指教。 发表时间: 2003年08月06日 10:14:54 回复

> 不要用 这个标记,这个标记声明的是静态变量。


应该是“成员变量”吧?



robbin

发表文章: 354
注册时间: 2003-06


Re: 请大家指教。 发表时间: 2003年08月06日 10:33:02 回复

用了!以后,就声明了静态成员变量,相当于:

public static String s = null;

__________________
E-mail: robbin_fan@yahoo.com.cn
Homepage: http://www.fankai.com/


raynix

发表文章: 133
注册时间: 2003-06


Re: 请大家指教。 发表时间: 2003年08月06日 10:55:33 回复

不会吧,随便测试以下:

test.jsp:<%!String s = null;%>test_jsp.java:public class test_jsp extends HttpJspBase {String s = null;...


服务器是jboss 3.2.1

Robin,你看到没有,在上面的那个帖子中,你犯的错误。

大家都客客气气的,甚至是委婉的。
你做高手,大家敬仰,这是好事。
可是,干嘛这么得理不饶人!
还有那几个自己也没说出任何所以然的,跟着robin大侠起哄的,都是干什么的!!

哈哈