如何在Spring配置文件中配置Hibernate

时间:2014-10-06 08:40:13

标签: java spring hibernate spring-mvc

我正在学习Spring MVC和Hibernate。使用Spring mvc(MySql DB)处理数据库连接和查询没有问题。

现在,我正在尝试使用Hibernate,我发现它错综复杂: 创建一个hibernate配置文件,创建一个用于检索SessionFactory的类,为任何持久对象创建一个xml文件等。

我确信有一种最简单的方法可以让我使用以下方式进行简单的配置:

  1. Spring xml配置文件
  2. 注释(在持久对象类中)
  3. 我希望达到的目标如下。我在一个例子中看到了类似的代码,但现在我无法在互联网上找到它

    XXXX-servlet.xml中

    <bean id="SessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="packagesToScan" value="com.springgestioneerrori.model" />
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                    <prop key="hibernate.connection.autocommit">true</prop>
                    <prop key="hibernate.show_sql">false</prop>
                    <prop key="hibernate.format_sql">true</prop>
                    <prop key="hibernate.use_sql_comments">false</prop>
                </props>
            </property>       
        </bean>
    
    
    
    
    
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
             <property name="driverClass" value="com.mysql.jdbc.Driver" />
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/dbName" />
            <property name="user" value="root" />
            <property name="password" value="root" />                   
     </bean>
    

    在上面的代码中,我想,我的dataSource bean是不正确的。有人知道达到目标的方法吗?

    谢谢大家!

2 个答案:

答案 0 :(得分:1)

我认为您的媒体资源名称来自数据源&#39; bean应该如下:

        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/dbName" />
        <property name="username" value="root" />
        <property name="password" value="root" />

所以代替driverClass,它应该是driverClassName,依此类推..

请参考这个答案here,它讨论了使用spring DriverManagerDataSource vs apache BasicDataSource。

希望能帮助

答案 1 :(得分:1)

一切都必须正确,但我想让你使用* .properties来保持连接配置到你的数据库

appContext.xml中的

<!-- JDBC DataSource bean -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:properties/database.properties</value>
        </list>
    </property>
</bean>

在database.properties中:

jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.schema = schema
jdbc.url = jdbc:mysql://localhost:3306/schema
jdbc.username = root
jdbc.password = password

是什么干扰你在课堂上使用注释?