【问题标题】:Select implementation class based on database根据数据库选择实现类
【发布时间】:2016-09-12 07:44:55
【问题描述】:

我有在 MySQL 上运行的应用程序,现在我想测试我的应用程序。在甲骨文数据库上。此应用程序使用 spring、hibernate 和 jpa。我想知道如何在相同的代码库中通过 spring.xml 等中的配置更改来实现这一点,

我也为 oracle 创建了一组实现类,但不知道如何告诉我的 Dao 使用 oracle 实现而不是 MySQL。

【问题讨论】:

  • 如果您使用 Hibernate,这将为您处理好,无需稍微调整配置文件以指定要使用的 JDBC 驱动程序。

标签: mysql oracle dao


【解决方案1】:

您习惯于选择数据库。与配置相同的代码库更改您在 DataSource 和 JPA entityManagerFactory 中的定义文件。

数据源

<bean id="dataSource"
        class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
    <!--    <property name="driverClass" value="com.mysql.jdbc.Driver"></property> -->
        <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="username" value="root"></property>
        <property name="password" value="1234"></property>
        <property name="url" value="jdbc:mariadb://"></property>
    </bean> 

entityManagerFactory

<bean id="entityManagerFactory"
                    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
                    <property name="jpaVendorAdapter">
                        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
                    </property>
                    <property name="dataSource" ref="dataSource" />
                    <property name="jpaProperties">
                        <props>
                            <!-- <prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop> 
                                <prop key="hibernate.default_schema">your schema</prop> -->
                   // your chice. 
                            <prop key="hibernate.dialect">org.hibernate.dialect.oracle10gdialect</prop>
                            <!-- <prop key="hibernate.dialect">org.hibernate.dialect.MySQLdialect</prop> -->


                            <prop key="hibernate.connection.pool_size">4</prop>
                            <prop key="hibernate.connection.shutdown">true</prop>
                            <prop key="hibernate.show_sql">true</prop> 
                            <prop key="hibernate.hbm2ddl.auto">update</prop>

                        </props>
                    </property>


                    <property name="packagesToScan" value="your.dto" />

        </bean>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2016-05-31
    相关资源
    最近更新 更多