【问题标题】:Hibernate changes database change from oracle to mysqlHibernate 将数据库从 oracle 更改为 mysql
【发布时间】:2017-03-20 05:40:05
【问题描述】:

我在我的项目中使用SpringHibernate。我的数据库已经从Oracle 10g 更改为MySQL

您能告诉我我需要对我的Hibernate 配置进行哪些更改吗?

我的Java 代码中是否需要进行任何更改。

【问题讨论】:

    标签: mysql database spring oracle hibernate


    【解决方案1】:

    如果您在项目中使用 hibernate.cfg.xml 来定义数据库属性,那么您需要将其更改为 MySQL 的以下值:-

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-configuration SYSTEM 
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    
    <hibernate-configuration>
        <session-factory>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/{db.name}</property>
            <property name="hibernate.connection.username">{db.name}</property>
            <property name="hibernate.connection.password">{db.password}</property>
    
        </session-factory>
    </hibernate-configuration>
    

    例如,您还需要在 pom.xml 中包含 mysql-connector jar

      <!--Mysql-Connector-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.36</version>
            </dependency>
    

    如果您不使用 hibernate.cfg.xml 而是在 Spring ApplicationContext.xml 中使用一些 sessionFactory bean。然后您需要将其更改为以下内容:-

    <bean id="sessionFactory"
              class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource"></property>
            <property name="annotatedClasses">
    
            </property>
            <property name="hibernateProperties">
                <props>
                    <!-- As of now not using hibernate.cfg.xml -->
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                    <prop key="hibernate.validator.apply_to_ddl">false</prop>
                    <prop key="hibernate.validator.autoregister_listeners">false</prop>
                    <prop key="show_sql">true</prop>
                    <prop key="format_sql">true</prop>
                </props>
            </property>
        </bean>
    
    <bean id="dataSource"
        class="org.apache.tomcat.dbcp.dbcp.BasicDataSource">
          <property name="driverClassName" value="${jdbc.driverClassName}" />
          <property name="url" value="${jdbc.url}" />
          <property name="username" value="${jdbc.user}" />
          <property name="password" value="${jdbc.pass}" />
       </bean>
    

    请关注http://www.baeldung.com/hibernate-4-spring,了解如何使用 spring 设置休眠的完整示例。

    【讨论】:

    • 如果您遇到任何问题,请告诉我?
    • 您使用的是 apache tomcat 服务器,但我使用的是 jetty 服务器。所以我认为 会改变..?
    • @BiswajitMondal 是的,它需要根据应用程序服务器进行更改。您可以在互联网上搜索确切的类名。但要回答您的实际问题,您需要更改 DBDialect 并包含 db-connector jar,其他属性将根据您的设置而有所不同。这只是我复制粘贴的一个示例,因为您没有在问题中包含该详细信息。
    猜你喜欢
    • 2013-02-10
    • 2016-05-03
    • 2018-08-05
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 2021-10-01
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多