配置hibernate问题

coolszy 2009-07-20 12:56:11
我配置hibernate
其中hibernate.cfg.xml配置如下

<session-factory>
<!--配置数据库连接 -->
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:orcl
</property>
<property name="connection.username">scott</property>
<property name="connection.password">tigger</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!-- 是否打印Sql语句 -->
<property name="hibernate.show_sql">true</property>

<mapping resource="com/szy/hibernate/user.hbm.xml" />
</session-factory>


user.hbm.xml文件如下配置
<hibernate-mapping package="com.szy.hibernate">
<class name="User" table="t_user">
<id column="ID" name="id" length="10" type="java.lang.String">
<generator class="assigned"/>
</id>
<property column="USERNAME" name="username" type="java.lang.String" length="20" not-null="true" unique="true"/>
<property column="PASSWORD" name="password" type="java.lang.String" length="20"/>
<property column="AGE" generated="never" lazy="false" name="age" type="java.lang.Integer"/>
</class>
</hibernate-mapping>


数据库是通过以下代码生成的
Configuration config=new Configuration().configure();
SchemaExport export=new SchemaExport(config);
export.create(true, true);


测试代码如下
User user=new User();
user.setId("001");
user.setUsername("coolszy");
user.setPassword("test");
user.setAge(21);

Session session=HibernateUtil.getSession();
Transaction ts=session.beginTransaction();
session.save(user);
ts.commit();


其中HibernateUtil是过去session的工具类
运行时老是报下面的错误

Exception in thread "main" java.lang.AbstractMethodError:
oracle.jdbc.driver.OracleDatabaseMetaData.supportsGetGeneratedKeys()Z
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:123)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
at com.szy.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:10)
at com.szy.hibernate.Test.main(Test.java:14)


不知怎么解决,请高手赐教
...全文
168 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanzhongw 2012-06-06
  • 打赏
  • 举报
回复
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<!--
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://128.1.125.5/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
-->

<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@128.1.125.5:1521:ora9i</property>
<property name="connection.username">cyw</property>
<property name="connection.password">cyw</property>
<property name="dialect">org.hibernate.dialect.Oracle9iDialect</property>


<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>

<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>

<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>


<property name="format_sql">true</property>

<!-- Drop and re-create the database schema on startup -->

<property name="hbm2ddl.auto">create</property>

<mapping class="com.gaotime.sms.model.CardInfo"/>

<mapping class="com.gaotime.sms.model.Student"/>




</session-factory>

</hibernate-configuration>
guanzhongw 2012-06-06
  • 打赏
  • 举报
回复
ojdbc15.jar
lanbiyu 2009-10-11
  • 打赏
  • 举报
回复
换的是哪个驱动?我也遇到这个问题
coolszy 2009-07-20
  • 打赏
  • 举报
回复
解决了
换了个驱动
coolszy 2009-07-20
  • 打赏
  • 举报
回复
我的这种写法是Java类型的
在Mysql中是可以使用的
lk198186 2009-07-20
  • 打赏
  • 举报
回复
楼上正解
tuyan123 2009-07-20
  • 打赏
  • 举报
回复
<property column="PASSWORD" name="password" type="java.lang.String" length="20"/>
type是指hibernate的数据类型吧,应该写成string

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧