7 个解决方案
#1
把你的hibernate.cfg.xml帖出来瞧瞧
#2
//是将User.hbm.xml和主运行程序和hibernate.cfg.xml放在同一个目录里面的
错的一塌糊涂.
User.hbm.xml存放的位置应该是User.class所在的目录.
错的一塌糊涂.
User.hbm.xml存放的位置应该是User.class所在的目录.
#3
楼上正确
#4
//是将User.hbm.xml和主运行程序和hibernate.cfg.xml放在同一个目录里面的
如果是把pojo也放在这里,很不合理,但是却不应该出错的。
如果你是用IDE进行编辑的,而且你是把.hbm.xml放在和源文件一个目录下(src),
那么你应该进行设置,当编译的时候,需要把.xml文件拷贝到对应的classes目录下。
你检查下,你的classes目录下,是否有这么.hbm.xml。如果没有,手动的考过来,也可以。
如果是把pojo也放在这里,很不合理,但是却不应该出错的。
如果你是用IDE进行编辑的,而且你是把.hbm.xml放在和源文件一个目录下(src),
那么你应该进行设置,当编译的时候,需要把.xml文件拷贝到对应的classes目录下。
你检查下,你的classes目录下,是否有这么.hbm.xml。如果没有,手动的考过来,也可以。
#5
就算我把所有的class文件和xml文件放在同一个目录下也是不行,还是出同一个错误!说明一句,我不是用IDE编程的,我用的是JCreator。
以下是我的2个XML文件:
Customer.hbm.xml:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-mapping>
<class name="sjl.Customer" table="CUSTOMER">
<id name="id" type="string" unsaved-value="null">
<column name="CID" sql-type="char(12)" not-null="true"/>
<generator class="uuid.hex" />
</id>
<property name="username" column="USERNAME" />
<property name="password" column="PASSWORD" />
</class>
</hibernate-mapping>
hibernate.cfg.xml:
<!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.datasource">java:comp/env/jdbc/myhi</property>
<property name="show_sql">true</property>
<property name="dialect">hibernate.dialect org.hibernate.dialect.SQLServerDialect</property>
<mapping resource="Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
以下是我的2个XML文件:
Customer.hbm.xml:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-mapping>
<class name="sjl.Customer" table="CUSTOMER">
<id name="id" type="string" unsaved-value="null">
<column name="CID" sql-type="char(12)" not-null="true"/>
<generator class="uuid.hex" />
</id>
<property name="username" column="USERNAME" />
<property name="password" column="PASSWORD" />
</class>
</hibernate-mapping>
hibernate.cfg.xml:
<!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.datasource">java:comp/env/jdbc/myhi</property>
<property name="show_sql">true</property>
<property name="dialect">hibernate.dialect org.hibernate.dialect.SQLServerDialect</property>
<mapping resource="Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
#6
初学的话不建议你用了JNDI的数据源,这样会增加调试、配置难度,最好用本地数据源,这个就跟web应用程序没有关系,可以单独调试。
如果放在web应用程序里,你必须把你的类文件放在 /WEB-INF/classes目录里,如果有包就应该有目录结构,hibernate.cfg.xml和Customer.hbm.xml也放在/WEB-INF/classes目录里,不过一般建议Customer.hbm.xml也放在包结构里面,引用的时候必须包括包路径,如你的例子就是sjl/Customer.hbm.xml。
如果放在web应用程序里,你必须把你的类文件放在 /WEB-INF/classes目录里,如果有包就应该有目录结构,hibernate.cfg.xml和Customer.hbm.xml也放在/WEB-INF/classes目录里,不过一般建议Customer.hbm.xml也放在包结构里面,引用的时候必须包括包路径,如你的例子就是sjl/Customer.hbm.xml。
#7
配置文件些错了
hibernate.cfg.xml
<mapping resource="Customer.hbm.xml"/>
应该是
<mapping resource="sjl/Customer.hbm.xml"/>
hibernate.cfg.xml
<mapping resource="Customer.hbm.xml"/>
应该是
<mapping resource="sjl/Customer.hbm.xml"/>
#1
把你的hibernate.cfg.xml帖出来瞧瞧
#2
//是将User.hbm.xml和主运行程序和hibernate.cfg.xml放在同一个目录里面的
错的一塌糊涂.
User.hbm.xml存放的位置应该是User.class所在的目录.
错的一塌糊涂.
User.hbm.xml存放的位置应该是User.class所在的目录.
#3
楼上正确
#4
//是将User.hbm.xml和主运行程序和hibernate.cfg.xml放在同一个目录里面的
如果是把pojo也放在这里,很不合理,但是却不应该出错的。
如果你是用IDE进行编辑的,而且你是把.hbm.xml放在和源文件一个目录下(src),
那么你应该进行设置,当编译的时候,需要把.xml文件拷贝到对应的classes目录下。
你检查下,你的classes目录下,是否有这么.hbm.xml。如果没有,手动的考过来,也可以。
如果是把pojo也放在这里,很不合理,但是却不应该出错的。
如果你是用IDE进行编辑的,而且你是把.hbm.xml放在和源文件一个目录下(src),
那么你应该进行设置,当编译的时候,需要把.xml文件拷贝到对应的classes目录下。
你检查下,你的classes目录下,是否有这么.hbm.xml。如果没有,手动的考过来,也可以。
#5
就算我把所有的class文件和xml文件放在同一个目录下也是不行,还是出同一个错误!说明一句,我不是用IDE编程的,我用的是JCreator。
以下是我的2个XML文件:
Customer.hbm.xml:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-mapping>
<class name="sjl.Customer" table="CUSTOMER">
<id name="id" type="string" unsaved-value="null">
<column name="CID" sql-type="char(12)" not-null="true"/>
<generator class="uuid.hex" />
</id>
<property name="username" column="USERNAME" />
<property name="password" column="PASSWORD" />
</class>
</hibernate-mapping>
hibernate.cfg.xml:
<!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.datasource">java:comp/env/jdbc/myhi</property>
<property name="show_sql">true</property>
<property name="dialect">hibernate.dialect org.hibernate.dialect.SQLServerDialect</property>
<mapping resource="Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
以下是我的2个XML文件:
Customer.hbm.xml:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-mapping>
<class name="sjl.Customer" table="CUSTOMER">
<id name="id" type="string" unsaved-value="null">
<column name="CID" sql-type="char(12)" not-null="true"/>
<generator class="uuid.hex" />
</id>
<property name="username" column="USERNAME" />
<property name="password" column="PASSWORD" />
</class>
</hibernate-mapping>
hibernate.cfg.xml:
<!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.datasource">java:comp/env/jdbc/myhi</property>
<property name="show_sql">true</property>
<property name="dialect">hibernate.dialect org.hibernate.dialect.SQLServerDialect</property>
<mapping resource="Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
#6
初学的话不建议你用了JNDI的数据源,这样会增加调试、配置难度,最好用本地数据源,这个就跟web应用程序没有关系,可以单独调试。
如果放在web应用程序里,你必须把你的类文件放在 /WEB-INF/classes目录里,如果有包就应该有目录结构,hibernate.cfg.xml和Customer.hbm.xml也放在/WEB-INF/classes目录里,不过一般建议Customer.hbm.xml也放在包结构里面,引用的时候必须包括包路径,如你的例子就是sjl/Customer.hbm.xml。
如果放在web应用程序里,你必须把你的类文件放在 /WEB-INF/classes目录里,如果有包就应该有目录结构,hibernate.cfg.xml和Customer.hbm.xml也放在/WEB-INF/classes目录里,不过一般建议Customer.hbm.xml也放在包结构里面,引用的时候必须包括包路径,如你的例子就是sjl/Customer.hbm.xml。
#7
配置文件些错了
hibernate.cfg.xml
<mapping resource="Customer.hbm.xml"/>
应该是
<mapping resource="sjl/Customer.hbm.xml"/>
hibernate.cfg.xml
<mapping resource="Customer.hbm.xml"/>
应该是
<mapping resource="sjl/Customer.hbm.xml"/>