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

3
我正在学习Spring MVC和Hibernate。使用Spring MVC (MySql DB)处理数据库连接和查询没有问题。但是,我发现使用Hibernate非常复杂:需要创建一个Hibernate配置文件、一个用于检索SessionFactory的类以及一个持久对象的xml文件等。
我相信有一种更简单的方法可以让我只使用以下内容进行简单配置:
1. Spring xml配置文件 2. 注释(在持久对象类中)
我的目标是像下面这样实现。我在示例中看到过类似的代码,但现在我无法在互联网上找到它了。
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个回答

1
我认为您在“数据源”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和apache的BasicDataSource。

希望能帮到你。


我从你的回答中可以看出属性名称是正确的,与我正在处理的项目相符。 - Tobb
是的,谢谢。现在我启动Eclipse时不会遇到任何错误。 - MDP

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

那么,是什么阻碍你在类中使用注解呢?


谢谢你,其实我已经在使用属性文件了,我删除了它的代码只是为了让这篇文章更易读。 好吧,没有什么能阻止我使用注释,我想说的是,我想只使用Spring配置文件和注释,而不是用一个类来检索SessionFactory,一个XML文件来处理任何持久化对象等。 - MDP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接