public static void main(String[] args) {
Student s=new Student();
s.setId(1);
s.setAge("22");
s.setName("tan");
//读取配置文件
Configuration cfg=new Configuration();
//创建
SessionFactory sf=cfg.configure().buildSessionFactory();
//打开
Session session=sf.openSession();
//开始事物
session.beginTransaction();
//持久化
session.save(s);
//提交
session.getTransaction().commit();
session.close();
}/ha/src/hibernate.cfg.xml<session-factory>
<property name="dialect">
org.hibernate.dialect.OracleDialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:orcl
</property>
<property name="connection.username">system</property>
<property name="connection.password">system</property>
<property name="connection.driver_class">
oracle.jdbc.OracleDriver
</property>
<property name="show_sql">true</property>
<mapping resource="com/hbm/Student.hbm.xml" /></session-factory>
/ha/src/com/hbm/Student.hbm.xml<hibernate-mapping package="com.students">
 <class name="com.hbm.Student" table="student" lazy="false">
  <id name="id"></id>
<property name="name"></property>
<property name="age"></property>
 </class>
</hibernate-mapping>报错:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/hbm/Student.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
at t.test.main(test.java:22)
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:508)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
... 7 more
Caused by: org.dom4j.DocumentException: http://hibernate.sourceforge.net/hibernate-mapping-3 Nested exception: http://hibernate.sourceforge.net/hibernate-mapping-3
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
... 8 more

解决方案 »

  1.   

    hibernate-mapping package="com.students">
    <class name="com.hbm.Student" table="student" lazy="false">定义的包 和类 不在一个包里?
      

  2.   

    <mapping resource="com/hbm/Student.hbm.xml" /> 的路径配置不正确。
    你再检查下xml文件的名称和路径。
      

  3.   


           /ha/src/com/hbm/Student.java
           /ha/src/com/hbm/Student.hbm.xml
    Student.java 和Student.hbm.xml都在同一个包下!!/ha/src/hibernate.cfg.xml
    这个在src下到底哪错了啊??急死人啦!~~~~~~~~~~
      

  4.   

    好好看看书上或其他例子,很好找错的你这个,Hibernate我觉得还是annotation 好用···
      

  5.   

    你的 Student.hbm.xml 中
    <id name="id"></id>
    <property name="name"></property>
    <property name="age"></property>
    没有指定数据类型啊,我觉得是这有问题。
      

  6.   

    hibernate-mapping package="com.students">
    <class name="com.hbm.Student" table="student" lazy="false">==》hibernate-mapping package="com.hbm">
    <class name="Student" table="student" lazy="false">其实一楼已经说了
      

  7.   

    应该是你的配置文件的问题,Student.hbm.xml 里面的Id增长列. 影射文件跟你的实体一般是放在一起的.