Hibernate 從 MySQL 到 DB2

程式設計師在專案的一開始應該都會希望盡快的把專案核心建立起來,
因此往往都先採用簡單快速的方式, MySQL 是一個適合小型的資料庫,
搭配 Hibernate 後, 可以將複雜的 物件 Transation 交給 Hibernate 去幫忙處理!!….

但是當要移轉到 大型資料庫的時候, 可能很多人就會採用 DAO 打掉重練的方式,
以避免日後的麻煩….

這問題今天我也遇到了, 不過, 我並不打算 把我的 DAO 打掉重練…
於是試著解決這些問題…

當要轉移到 DB2的時候必須修改 三個地方,
1. 當然 JNDI 的 Resource 是一定要改的,  裡面的 JDBC 以及連結的資料庫 URL 一定需要變動!!…
    <Resource name="jdbc/test" jdbcUrl="jdbc:db2://localhost:50000/test" user="username" password="password"
        auth="Container" description="Database" maxPoolSize="4" minPoolSize="2" acquireIncrement="1" maxIdleTime="300"
        driverClass="com.ibm.db2.jcc.DB2Driver" factory="org.apache.naming.factory.BeanFactory" type="com.mchange.v2.c3p0.ComboPooledDataSource" />

2. persistence.xml
    將原本的
    <!– <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> –>
    改成<property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"/>

    <persistence-unit name="persistenceName" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <non-jta-data-source>java:comp/env/jdbc/test</non-jta-data-source>
        <properties>
            <property name="hibernate.archive.autodetection" value="class, hbm"/>
            <!– <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> –>
            <property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"/>
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.format_sql" value="true"/>
            <!– <property name="hibernate.hbm2ddl.auto" value="create"/> –>
        </properties>
    </persistence-unit>

3. applicationContext.xml 檔案
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
        <property name="persistenceUnitName" value="persistenceName" />
        <property name="loadTimeWeaver">
            <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
        </property>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="database" value="DB2" />
                <!– <property name="database" value="MYSQL" /> –>
            </bean>
        </property>
    </bean>

廣告

About fenjj

Perfect !!??...
本篇發表於 Uncategorized。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s