我用的 myeclispe8.0的
hibernate3.2
自己参照书本,修改了了。用的MYSQL数据库
开始运行后,就抛出一堆异常。整理了几个小时都没有办法
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.InvalidMappingException: Could not parse mapping document from resource action/shouzhi.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 action.Buinessdemos.<clinit>(Buinessdemos.java:24)
at action.Ser.doGet(Ser.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
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)
... 21 more
Caused by: org.dom4j.DocumentException: http://hibernate.sourceforge.net/hibernate-mapping-3.2.dtd Nested exception: http://hibernate.sourceforge.net/hibernate-mapping-3.2.dtd
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
... 22 more
java.lang.IllegalStateException: getWriter() has already been called for this response
at org.apache.catalina.connector.Response.getOutputStream(Response.java:579)
at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:183)
at action.Ser.doGet(Ser.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
劳烦大虾给指点
hibernate3.2
自己参照书本,修改了了。用的MYSQL数据库
开始运行后,就抛出一堆异常。整理了几个小时都没有办法
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.InvalidMappingException: Could not parse mapping document from resource action/shouzhi.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 action.Buinessdemos.<clinit>(Buinessdemos.java:24)
at action.Ser.doGet(Ser.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
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)
... 21 more
Caused by: org.dom4j.DocumentException: http://hibernate.sourceforge.net/hibernate-mapping-3.2.dtd Nested exception: http://hibernate.sourceforge.net/hibernate-mapping-3.2.dtd
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
... 22 more
java.lang.IllegalStateException: getWriter() has already been called for this response
at org.apache.catalina.connector.Response.getOutputStream(Response.java:579)
at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:183)
at action.Ser.doGet(Ser.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
劳烦大虾给指点
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration> <session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql//localhost:3306/account</property>
<property name="connection.username">root</property>
<property name="connection.password">1111</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<mapping resource="action/shouzhi.hbm.xml"/>
</session-factory></hibernate-configuration>
hibernate.cfg.xml文件的内容
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.2//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.2.dtd">
<hibernate-mapping>
<class name="entiy.shouzhi" table="shouzhi">
<id name="id"column="id"type="int">
<generator class="native"/>
</id>
<property name="Inname"column="inname"type="string"/>
<property name="re"column="re"type="string"/>
<property name="payfor"column="payfor"type="float"/>
<property name="times"column="times"type="date"/>
</class>
</hibernate-mapping>
import org.hibernate.*;
import org.hibernate.cfg.Configuration;//import entiy.shouzhi;import java.io.*;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.*;
public class Buinessdemos {
private List<shouzhi> shouzhi=new ArrayList<shouzhi>();
public static SessionFactory sessionFactory;
static{
//根据默认位置的
try {
org.hibernate.cfg.Configuration config=new Configuration();
// config.addClass(Shouzhi.class);
//config.addClass(Shouzhi.class);
//创建一个sessionfactory实例
sessionFactory=config.configure("/action/hibernate.cfg.xml").buildSessionFactory();
} catch (MappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}public List findAllshouzhi(ServletContext context,OutputStream out)throws Exception
{
//通过sessionfactory的opensession方法得到一个session对象
Session session=sessionFactory.openSession();
Transaction tr=null;
try {
//开启当前session的事务
tr = session.beginTransaction();
//3.2版本的做法用 from对象
shouzhi= (List<shouzhi> ) session.createQuery("from shouzhi");
// for (Iterator it = shouzhi.iterator(); it.hasNext();)
// {
//
// }
// Iterator it = shouzhi.iterator();
// while(it.hasNext())
// {
// System.out.println();
// }
for(shouzhi x:shouzhi)
{
System.out.println(x.getId());
}
} catch (Exception e) {
//如果tr为null,则事务回滚
if(tr!=null)
tr.rollback();
throw e;
}
finally {
// No matter what, close the session
session.close();
}
return shouzhi;
}}
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
应该就是这里问题了吧
这个里面的用的3.2.dtd 就无法解析shouzhi.hbm.xml了
Could not parse mapping document from resource action/shouzhi.hbm.xml
但是它又抛出这个错误了,Could not parse configuration: /action/hibernate.cfg.xml
是全路径吗
弱弱地问一下 你的这些配置里 都有空格 是吗?
是相对的。这个是我工程项目下的路径
demo3/src/action/shouzhi.hbm.xml
大侠偶想问下,就是这样更换的话。我用myeclipse添加的是3.2JAR。向下兼容没有问题么?
直到找到增加什么引起异常。
现在抛错是这个
Could not find a getter for Inname in class action.shouzhi是不是我的映射的字段有问题?
use account;
create table shouzhi
(
id int primary key AUTO_INCREMENT
,Inname varchar(30)
,re varchar(550)
,payfor float
,times datetime
,Uname varchar(30),
foreign key(Uname) references users(Uname)
)用MYSQL创建的脚本是这个
private int id;
private String Innmae;
private String re;
private float payfor;
private String Uname;
private Date birthday;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getInnmae() {
return Innmae;
}
public void setInnmae(String innmae) {
Innmae = innmae;
}
public String getRe() {
return re;
}
public void setRe(String re) {
this.re = re;
}
public float getPayfor() {
return payfor;
}
public void setPayfor(float payfor) {
this.payfor = payfor;
}
public String getUname() {
return Uname;
}
public void setUname(String uname) {
Uname = uname;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
shouzhi类中是这样写的
你不会是手写的吧
命名不太规范啊
命名不太规范
<property name="Inname"column="inname"type="string"/> column的值首字母改成与列名对应的大写 ?
type="int"
type="strng"
type="float"
改为
type="java.lang.Integer"
type="java.lang.String"
type="java.lang.Float"
eclipse自动生成的就是这种格式的
搞个插件,鼠标一点mapping就出来了。有特殊的要求的时候再手动改。
刚学,能否麻烦大虾推荐一个?对于eclipse的插件安装还不是很熟悉
楼主命名规范以后一定要注意哦
切换到-->database Exeplorer模式,
大虾,我就是用MyEclipse 8.0的书好了好几天,基本没有啥感觉在闷下去要崩溃了,憋不住实际操作了下书上实例!恩,恩。命令规范我已经改正过来
楼上说有现成的,你可试试。