Hibernate更改了数据库更改

时间:2014-03-20 06:48:22

标签: oracle hibernate struts

我在我的项目中使用Struts和Hibernate 2.0。在我的项目中,我的数据库已从oracle 10g更改为Oracle 11g。

您能否告诉我在Hibernate配置中需要进行哪些更改?

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

    <hibernate-configuration>
    <session-factory>

    <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
    <property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
    <property name="connection.url">jdbc:oracle:thin:@<host>:<port>:<sid></property>
    <property name="connection.username">username</property>
    <property name="connection.password">password</property>

    <property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>

    <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    <property name="current_session_context_class">thread</property>
    <property name="hibernate.show_sql">false</property>
    </session-factory>

    </hibernate-configuration>

4 个答案:

答案 0 :(得分:0)

如果您的数据访问逻辑是在Hibernate中实现的,那么您的代码是可移植的。这意味着除了Driver之外,如果它导致任何问题,你真的不需要更改特定于数据库更改的任何内容。例如,如果要将数据库从MYSQL更改为Oracle,则可能需要更改 dialect 部分,单独更改hibernate配置文件的连接属性以及特定于数据库的驱动程序。

希望这有用!

答案 1 :(得分:0)

只需将驱动程序(Jar文件)更新为Oracle Database 11g第2版JDBC驱动程序

答案 2 :(得分:0)

您的XML似乎没有配置为Oracle 10g,它显示了MySQL .. 无论如何这样做是为了解决你的问题。 只需更改驱动程序名称和URL,即连接字符串,也可以更改方言 在线搜索Oracle Dialect并且不要忘记添加Jars !!! :)

答案 3 :(得分:0)

是的,您需要更改方言名称。对不起,我发布了另一个答案,因为我无法添加其他评论。 在线查找Oracle11g方言名称,方言是将HQL(hibernate查询语言转换为实际数据库查询)的类,可能 ClassNotFoundException ,如果发生这种情况然后只搜索其中包含Oracle11g方言类的Hibernate jar。我非常确定这个jar不适用于ORacle提供连接数据库的JDBCDriver jar。

Dialect Jars是Hibernate的一部分