有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在学习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>

在上面的代码中,我认为不正确的是我的数据源bean。有人知道实现我目标的方法吗

谢谢大家


共 (2) 个答案

  1. # 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" />
    

    因此,它应该是driverClassName,而不是driverClassName等等

    请参考这个答案here,它讨论了如何使用spring DriverManager数据源与apache BasicDataSource

    希望有帮助

  2. # 2 楼答案

    一切都必须正确,但我想让你使用*。属性来保持与数据库的连接配置

    在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>
    

    在数据库中。属性:

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

    是什么妨碍了你在类中使用注释