【问题标题】:Where can I find a good tutorial for integrating hibernate with Spring MVC 3.0 using annotations? [closed]在哪里可以找到使用注释将休眠与 Spring MVC 3.0 集成的好教程? [关闭]
【发布时间】:2010-11-15 06:35:52
【问题描述】:

我正在使用 JSP 和 Spring MVC 3.0 开发一个动态网站,但我无法让 hibernate 使用它。另外,我使用 PostgreSQL 作为我的数据库。我不知道我应该放哪个库。我对这项技术很陌生。有人可以帮我弄这个吗?谢谢

【问题讨论】:

    标签: hibernate model-view-controller spring jsp postgresql


    【解决方案1】:

    这些库取决于您可能想要实现的功能。

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate</artifactId>
            <version>3.2.7.ga</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.3.0.ga</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>3.3.0.ga</version>
        </dependency>
        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>8.3-603.jdbc3</version>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1</version>
        </dependency>
    

    如果您使用的是 maven,这些应该会给您一个良好的使用开始。 c3p0 用于您的 postgres 连接上的连接池。

    我强烈建议使用 hibernate 注释方法(正如您通过 maven 添加的注释包所看到的那样)。 因此,要使用您的 postgresql db + hibernate,请将以下内容添加到您的 applicationContext:

    <bean id="propertyConfigurer"
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
          p:location="/WEB-INF/jdbc.properties" />
    
    <!-- Uses mchange connection pooling -->
    <bean id="dataSource"
        class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"
        p:driverClass="${jdbc.driverClassName}"
        p:jdbcUrl="${jdbc.url}"
        p:user="${jdbc.username}"
        p:password="${jdbc.password}" />
    
    <bean id="hibernateProps" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="properties">
            <props>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.c3p0.minPoolSize">5</prop>
                <prop key="hibernate.c3p0.maxPoolSize">20</prop>
                <prop key="hibernate.c3p0.idleTestPeriod">300</prop>
                <prop key="hibernate.c3p0.timeout">600</prop>
                <prop key="hibernate.c3p0.max_statement">50</prop>
                <prop key="hibernate.c3p0.testConnectionOnCheckout">false</prop>
                <prop key="hibernate.c3p0.preferredTestQuery">select 1;</prop>
            </props>
        </property>
    </bean>
    
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
          p:dataSource-ref="dataSource"
          p:packagesToScan="package.with.your.domain.objects.in.it"
          p:hibernateProperties-ref="hibernateProps" />
    

    您在这里所做的基本上是使用 jdbc.properties 文件配置 jdbc 连接(您需要创建一个 - 如果您需要帮助,请给我评论。最重要的是 jdbc 驱动程序,即 org.properties 文件。 postgresql.驱动程序)。然后将这些属性连接到 c3p0 连接池中,并将其传递给 AnnotationSessionfactory。

    要在你的应用程序中使用这个 sessionfactory,你可以在你的 Dao 类中扩展 HibernateDaoSupport(HibernateDaoSupport 是 Spring 自带的,基本上是为你做事务管理),然后在 sessionFactory 参数上注入 sessionfactory。但是,建议不要再使用 HibernateDaoSupport,而是使用 @Repository Annotation - 在 google 上查看。

    我希望这能给您一些帮助。您可以随时在 Google 上搜索更多教程,例如 http://www.vaannila.com/hibernate/hibernate-example/hibernate-annotations-1.html

    干杯

    【讨论】:

      猜你喜欢
      • 2021-06-27
      • 2010-11-04
      • 2017-12-13
      • 2011-10-09
      • 2011-02-06
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多