hibernate没有听说过,帮助你UP一下

解决方案 »

  1.   

    总算见到高手了,明白了别忘了给我们讲讲,最起码讲讲什么是“hibernate”,说实在话,我写这个单词都费了半天劲!!
      

  2.   

    我找过了,网上好像很少的资料
    Hibernate is a powerful, high performance object/relational persistence and query service for Java. It lets you develop persistent objects following common Java idiom, including composition, association, inheritance, polymorphism, and the Java collections framework. To allow a rapid build procedure, Hibernate rejects the use of code generation or bytecode processing. Instead, runtime reflection is used and SQL generation occurs at system startup time. It supports Oracle, DB2, MySQL, PostgreSQL, Sybase, Interbase, Microsoft SQL Server, Mckoi SQL, Progress, SAP DB, and HypersonicSQL.
      

  3.   

    呵呵,我觉得Hibernate产品只能代表一种趋势,
    让程序不再考虑数据库,
    所有数据操作可以看作为对象操作,
    是从整修framework角度考虑。其实各家数据库公司都在做这方面的研究。
    Hibernate只能算是个探索吧,
    所以文档不全也算正常吧。
      

  4.   

    测试通过,其实挺简单的,运行demo.bat,pass,config配置如下。A small demo application lives in the package cirrus.hibernate.eg. The demo is a toy network modelling application (nothing to do with computer networks). 1,edit the hibernate-x.x.x/hibernate.properties file, setting the correct properties for your database. (Don't stress...theres examples there...) 
    2,edit hibernate-x.x.x/demo.bat, suppying the path to your JDBC driver 
    3,Run the demo.bat from the hibernate-x.x.x directory 1,解压到一个目录后,首先,编辑hibernate.properties,因为没装DB2所以用#号注释掉DB2的配置,
    然后COPY msqyl的驱动.JAR到lib目录下,然后在MYSQL新建一个test表(如果没有test表的话),然后如下
    ## MySQLhibernate.dialect cirrus.hibernate.sql.MySQLDialect
    hibernate.connection.driver_class org.gjt.mm.mysql.Driver
    #hibernate.connection.driver_class com.mysql.jdbc.Driver
    #注意,这里默认有2行的根据你使用的包的版本不同,注释了其中一行
    hibernate.connection.url jdbc:mysql:///test
    hibernate.connection.username root
    hibernate.connection.password root2,编辑demo.bat,加上你mysql.jar放的位置,建议放在lib下,然后如下:
    java -cp .;lib\mm.mysql-2.0.4-bin.jar;lib\commons-logging.jar;lib\commons-collections.jar;lib\commons-lang.jar;lib\cglib.jar;lib\bcel.jar;lib\odmg.jar;lib\jdom.jar;lib\xml-apis.jar;lib\xerces.jar;lib\xalan.jar;hibernate.jar cirrus.hibernate.eg.NetworkDemo3,Run the demo.bat from the hibernate-x.x.x directory 
    这步就没啥说的了,step by step,按照提示做呗。
    如下:
    Try building a network using commands like: 
    下面是命令:
    你可以到mysql数据库同时看结果。setup
    create vertex foo
    create vertex bar
    create source src 1.0
    create source snk -1.0
    create edge foobar 1.0 1.0 foo bar
    rename edge foobar e1
    create edge e2 1.0 1.0 src foo
    create edge e3 1.0 1.0 bar snk
    show
    find from v in class cirrus.hibernate.eg.Vertex where v.name='foo'
    delete edge e1
    show
    drop
    quit
    附注:oracle是同样的道理,step by step,文档其实就只要这么讲就清楚了,喜欢M$的文档习惯不成?
    有时间再分析,EJB中的CMP好像没这个效果好,呵呵。:)
    BTW,你是学习分析还是工程实施啊?
      

  5.   

    更正:
    1,解压到一个目录后,首先,编辑hibernate.properties,因为没装DB2所以用#号注释掉DB2的配置,
    然后COPY msqyl的驱动.JAR到lib目录下,然后在MYSQL新建一个test表(如果没有test表的话),然后如下
    是新一个库test库,不是表,:),不好意思。
      

  6.   

    Hibernate计划支持J2EE和敏捷方法(agile methodologies 也被称为轻量级方法)的结合。如果你的开发过程有(并且依靠)经常性的改变,使用能够降低程序的变动的成本的技术非常重要。当refactoring(重构)需要花费大量的成本的时候,你的敏捷的开发过程更有可能生产出entropy(熵/平均信息量)而不是有延展性的软件。
        CMP Entity Beans是使refactoring(重构)花费很大的技术的一个例子。因为没有对granularity collections 和 dependent objects 提供适当的支持,你就不得不在course-granularity CMP beans and hand-coded JDBC中选择一个。哪一个解决方案都不能够很好地适应经常性的改变。第一个解决方案限制代码再利用。支持第二个解决方案的(DAO象)的模式鼓励平行的类结构的成长。
        Hibernate是为过去的面向对象的纯粹主义者和 认为商务对象应该最清洁地表达商务模型的人们提供一种持久性的解决方案,可能是最符合Java语言习惯的。 
        例如XP从SmallTalk公社产生了。 Hibernate参考在那个环境中被使用的那种的持久性解决方案而作成的。相应地,大部分其他的Java解决方案——使用代码产生或字节码处理——是参考C++的解决方案而作成的。 Java与C++有很多的共同之处,然而,和SmallTalk相同的东西更多;尤其它对运行时映像的支持。 
        运行时发动机与11个开放的源代码和商用的数据库兼容的,并且应该是与一些其他的数据库兼容的。图解产生工具要求大约一、两小时的工作去支持每个新关系数据库管理系统。这样,即使你的数据库不正式还被支持,你将也许还能使用Hibernate。 与J2EE的融合 
    支持JMX 
    Hibernate可以被JMX配置和管理 
    与J2EE结构融合 
    · SessionFactory也许被编入JNDI 
    · Session  是可以序列化的,有很多的被状态会话Bean或者带有loadbalancing/failover的servlet HttpSession保持 
    · 应用服务器的数据源也许被JDBC连接提供 
    · 事务和应用服务器事务由JTA结合起来 
    · 与JMX融合 以上是我翻译的一部分资料,详细的介绍可以到下面的网址下载,包括安装程序和文档
    http://sourceforge.net/projects/hibernate 
      

  7.   

    to xuetinge(薛挺) :
     你好厉害,我配置了两天都没有配置成功,我现在在做技术文档,过两天是一下你介绍的配置,有什么问题,再和你联系。to everyone :
       Hibernate是2002年1月份推出的一项新的技术,实现与EJB的实体Bean类似的功能,不过比它要好。国外已经有很多人在实际的项目开发中使用了,而且用的很好;国内应该也有一些人在研究,希望大家多交流一下,把Hibernate用的更好。
      

  8.   

    这回的文档还算可以,希望能给各位有所帮助
    Hibernate简介Hibernate是一种用于保存在关系数据库中的Java对象-或者为现有的关系数据提供面向对象视图的持久性服务,是为过去的那些面向对象的纯粹主义者和认为商务对象应该最清洁地、最符合Java语言习惯地表达商务模型的人们提供的一种持久性解决方案。Hibernate让程序不再考虑数据库,所有数据操作可以看作是对对象操作。
        Hibernate可以被JMX配置和管理,支持Collection实例管理,支持规模巨大的Java collection API的子集,支持Java惯用语(包括association, inheritance, polymorphism, composition 和 Java collections framework)。
        Hibernate适用于开发过程有(并且依靠)经常性的变动的程序,目前,它为以下应用程序提供适当的持久性机制:
    § swing或者servlet基础应用程序
    § CORBA 应用程序
    § 使用coarse-grained实体bean的J2EE应用程序
    § 使用会话bean而不是实体bean的J2EE应用程序
      

  9.   

    to xuetinge(薛挺) :
       我以前是在JBuilder7中配置的,运行提示no JDNI name configured警告信息,始终在改正这个问题,在JDK下运行同样有这样的信息,不过好像没什么影响,不知道JDNI 是在什么情况下使用?
      

  10.   

    这里没用到JNDI的,:)
    因为好像没看到哪用了datasource的呢。
    JDK运行不了?
    不会吧?
      

  11.   

    不过有时候,分析下他的SRC,或者会有帮助的。
      

  12.   

    2 icmas(nice小客):
    对,类似TopLink,下面是关于TopLink的介绍,我想hibernate不是被收购就是自己开公司的啦。:)
    相类似的东西应该包括CASTOR等等,Oracle推出新版本TopLink工具 --------------------------------------------------------------------
      全球最大的企业级软件供应商Oracle公司日前宣布,在全球范围内推出Oracle9iAS(Oracle9i应用服务器) TopLink,这是一个允许开发人员利用关系型数据库开发企业Java应用的解决方案,为全面提高Java应用开发效率提供了强有力的帮助。Oracle公司今年6月成功收购了WebGain公司的TopLink工具,现在这一收购行为结出正果。Oracle除了单独提供TopLink工具外,还能够把它作为Oracle9iAS的一个功能组件来提供,许可的组件适用于包括Oracle9iAS在内的所有J2EE应用服务器、Oralce和非Oracle数据库、Java开发工具。Oracle还同时 
    公布了TopLink产品发展蓝图,承诺不断为Java开发群体提供产品和高性能解决方案。  所有Oracle9iAS第2版标准版和企业版的用户都将从Oracle9iAS 9.0.3升级版本中获得TopLink。对于希望在应用和服务中嵌入TopLink的经销商和独立软件开发商,现在就可以从可观的许可优惠上获益匪浅,而在此之前,经销商和独立软件开发商都需要单独购买TopLink才能获得相关功能。  Oracle在Oracle.com网站上提供了一系列正在进行的Web论坛,以帮助开发人员有效解决各种围绕Java开发和关系型数据库的疑难问题,共享成功的Java应用开发经验。现在,开发人员可以在OTN网站上免费下载TopLink开发者版本。  最新版本的TopLink在许多重要性能方面都得到了增强,在设计、扩展性和性能方面更加成熟。它提供了丰富的功能集和可伸缩性,利用高速缓存技术增强性能,能够最小化访问JDBC数据库时的数据库和网络流量;允许开发组成员无缝集成开发过程,从而让开发人员能够把集中精力于应用,而不是底层架构,全面优势开发资源。TopLink继续为非Oracle数据库、应用服务器、开发工具和原有TopLink客户提供支持。  Oracle9iAS TopLink的成功推出,得到了业界分析家的充分肯定。IDC高级分析师Steve Hendrick说:“过去,把Java对象映射到关系型数据库一直是复杂的劳动密集型操作,需要开发商投入大量的精力。TopLink是一个底层架构的解决方案,可以把Java对象映射到数据库,简化了Java对象与任何JDBC数据库之间的集成。毫无疑问,通过把TopLink嵌入到Oracle9iAS中,Oracle为开发人员提供了更高效率的应用开发和部署环境。”  Oracle高级副总裁Thomas Kurian表示:“通过最新版本的TopLink,Oracle进一步兑现提供基于开放标准的技术的承诺,努力提高用户的应用效益。Oracle郑重承诺,Oracle继续把TopLink技术作为关键性的Java开发解决方案,并且进一步把TopLink融入基于Java和XML的数据综合架构中。”
      

  13.   

    Hibernate应该没有被收购或是开公司,代码还在继续更新而且是公开的,
    不知道有没有人知道Hibernate 如何实现Java对象是采用什么方式映射到关系数据库的?
      

  14.   

    差不多完事了,现在正在研究与J2EE的融合问题。
      

  15.   

    与JBuilder 配合使用的问题:如果将 .xml 和 .properties 文件放置到class目录,每次rebuild 就要重新拷贝一次,比较麻烦。hibernate 提供了以下方法,但是好像有问题,帮忙解决一下。
          // configure the Datastore
          InputStream isVertex = (InputStream) new FileInputStream("D:\\\\Vertex.hbm.xml");
          InputStream isEdge   = (InputStream) new FileInputStream("D:\\Edge.hbm.xml");     ds = Hibernate.createDatastore()
              .storeInputStream(isVertex)
              .storeInputStream(isEdge);
          Properties props = new Properties();
          props.setProperty("hibernate.dialect",
                            "cirrus.hibernate.sql.OracleDialect");
          props.setProperty("hibernate.connection.driver_class",
                            "oracle.jdbc.driver.OracleDriver");
          props.setProperty("hibernate.connection.url",
                            "jdbc:oracle:thin:@server:1521:test");
          props.setProperty("hibernate.connection.username", "user");
          props.setProperty("hibernate.connection.password", "pass");
          props.setProperty("hibernate.connection.pool_size", "2");
          props.setProperty("hibernate.statement_cache.size", "0");
         
        props.load(props);
    下面有几个相关的连接,有助于理解学习Hibernate,供大家参考Tom Sedge has written a piece explaining various Hibernate association styles http://www.xylax.net/hibernate 
    The Cayenne project maintains a Wiki page comparing features of various Java O / R tools http://c2.com/cgi-bin/wiki?ObjectRelationalToolComparison
    Scott Ambler's well-known paper is the about best explanation of O / R mapping strategies around http://www.ambysoft.com/mappingObjects.pdf 
      

  16.   

    to xuetinge(薛挺):
        你用 Hibernate 开发过项目麽????    国外已经有很多人在开发项目中使用它了,国内不清楚有没有人用????
    还有500分,加油哇!!!
      

  17.   

    .xml 文件搞定了,.properties 文件还是不行
      

  18.   

    搞定!!
    解决方案如下:每一个调用Datastore的地方都有可能用到属性配置文件,换一下调用方式,就可以解决问题。eg:
    new SchemaExport(ds).create(true, true);
    改为  new SchemaExport(ds, props).create(true, true);悟:对别人过分的依赖,你会使自己更加..
      

  19.   

    我们的产品叫OR mapping.
    对象与关系数据库的映射.替换Entity Bean
      

  20.   

    最好的OR工具TOPLink(oracle的)
    不过很贵.