浏览 2815 次
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-11
我用struts+hibernate开发一个bbs论坛出现了问题 工具是 Myeclipse+MySql jdk6.0 tomcat6.0 问题描述:有两个.hbm.xml文件分别是user.hbm.xml和sort.hbm.xml. 与之对应的是两个.java文件User.java和Sort.java. 还有个hibernate.cfg.xml文件 user.hbm.xml和sort.hbm.xml在hibernate包内 hibernate.cfg.xml在hibernate包的上级目录里 以下为正文: hibernate.cfg.xml文件: <?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"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="connection.username">root</property> <property name="connection.url">jdbc:mysql://127.0.0.1:3306/bookstore</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="myeclipse.connection.profile">MySQL</property> <property name="connection.password">123</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <mapping resource="hibernate/user.hbm.xml"/> <mapping resource="hibernate/sort.hbm.xml"/> </session-factory> </hibernate-configuration> user.hbm.xml文件: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping > <class table="bbsuser" name="StudyBbs.User"> <id name="id" column="id"> <generator class="increment"/> </id> <property name="username" column="username" type="String"></property> <property name="password" column="password" type="String"></property> <property name="nickname" column="nickname" type="String"></property> <property name="sex" column="sex" type="String"></property> <property name="birthyear" column="birthyear" type="String"></property> <property name="birthmonth" column="birthmonth" type="String"></property> <property name="birthday" column="birthday" type="String"></property> <property name="email" column="email" type="String"></property> <property name="mobile" column="mobile" type="String"></property> <property name="signiture" column="signiture" type="String"></property> <property name="grade" column="grade" type="String"></property> <property name="score" column="score" type="Integer"></property> </class> </hibernate-mapping> User.java类: package StudyBbs; import java.util.*; import java.sql.Connection; import java.sql.ResultSet; import org.hibernate.Query; import org.hibernate.Transaction; import org.hibernate.cfg.*; import StudyBbsForm.LoginUserForm; import hibernate.HibernateSessionFactory; import org.hibernate.Session; public class User { private int id; private String username = null; private String password = null; private String nickname = null; private String sex = null; private String birthyear = null; private String birthmonth = null; private String birthday = null; private String email = null; private String mobile = null; private String signiture = null; private String grade = null; private int score = 0; public User(){} public void setUsername(String username) { this.username = username; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setPassword(String password) { this.password = password; } public String getPassword() { return password; } public void setNickname(String nickname) { this.nickname = nickname; } public String getNickname() { return nickname; } public void setSex(String sex) { this.sex = sex; } public String getSex() { return sex; } public void setBirthyear(String birthyear) { this.birthyear = birthyear; } public String getBirthyear() { return birthyear; } public void setBirthmonth(String birthmonth) { this.birthmonth = birthmonth; } public String getBirthmonth() { return birthmonth; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getBirthday() { return birthday; } public void setEmail(String email) { this.email = email; } public String getEmail() { return email; } public void setMobile(String mobile) { this.mobile = mobile; } public String getMobile() { return mobile; } public void setSigniture(String signiture) { this.signiture = signiture; } public String getSigniture() { return signiture; } public void setGrade(String grade) { this.grade = grade; } public String getGrade() { return grade; } public void setScore(int score) { this.score = score; } public int getScore() { return score; } public static boolean checkUser(String name,String psw) throws Exception{ Session session=null; session=HibernateSessionFactory.getSession(); Transaction trancation=session.beginTransaction(); Query query=session.createQuery("from User as a where a.username='"+name+"' and a.password='"+psw+"'"); Iterator it=query.iterate(); if(it.hasNext()){ return true; }else{ return false; } } public static String getUserGrade(DB db,String name) throws Exception{ String strSql; ResultSet rs; String strHql="from User as u where u.username='"+name+"'"; Iterator it=db.OpenSql(strHql); if ( it.hasNext()) { User user=(User)it.next(); return user.getGrade(); } else{ return null; } } public static Vector Search(DB db ,String username) throws Exception{ Vector Users = new Vector(); ResultSet rs,rsNest; String strSql=null; String strHql="from User as u where u.username like '%"+username+"%'"; Iterator it = db.OpenSql(strHql); while (it.hasNext()){ User u=(User)it.next(); User user = new User(); user.setUsername(u.getUsername()) ; user.setGrade(u.getGrade()) ; Users.add(user); } return Users; } public static Vector SearchMaster(DB db) throws Exception{ Vector Users = new Vector(); ResultSet rs,rsNest; String strSql=null; String strHql="from User as u where u.grade='斑竹'"; Iterator it = db.OpenSql(strHql); while (it.hasNext()){ User u=(User)it.next(); User user = new User(); user.setUsername(u.getUsername()) ; user.setGrade(u.getGrade()) ; Users.add(user); } return Users; } } sort.hbm.xml文件: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping > <class table="sort" name="StudyBbsForm.SortForm"> <id name="id" column="id"> <generator class="increment"/> </id> <property name="name" column="sortname" type="String"></property> <property name="master" column="master" type="String"></property> </class> </hibernate-mapping> Sort.java文件: package StudyBbs; import java.util.*; import java.sql.Connection; import java.sql.ResultSet; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Transaction; import hibernate.HibernateSessionFactory; public class Sort implements java.io.Serializable{ private int id; private String name; private String master; private int topicNum; private int lastTopicId; private String lastTopic=""; private String lastTopicOwner=""; private String lastTopicTime=""; public Sort(){} public Sort(int id,String name,String master,int topicNum,int lastTopicId,String lastTopic,String lastTopicOwner,String lastTopicTime){ this.id = id; this.name = name; this.master = master; this.topicNum = topicNum; this.lastTopicId = lastTopicId; this.lastTopic = lastTopic; this.lastTopicOwner = lastTopicOwner; this.lastTopicTime = lastTopicTime; } public int getId(){ return id; } public String getName(){ return name; } public String getMaster(){ return master; } public int getTopicNum(){ return topicNum; } public int getLastTopicId(){ return lastTopicId; } public String getLastTopic(){ return lastTopic; } public String getLastTopicOwner(){ return lastTopicOwner; } public String getLastTopicTime(){ return lastTopicTime; } public static Vector Search(DB db) throws Exception{ Vector sorts=new Vector(); Iterator it,topicIt; int topicNum=0; int lastTopicId; String lastTopic; String lastTopicOwner; String lastTopicTime; String strHql; String countHql; String master,sortname; int sortid; strHql="from Sort order by id desc"; it=db.OpenSql(strHql); while(it.hasNext()){ lastTopicId =0; lastTopic=null; lastTopicOwner=null; lastTopicTime=null; Sort sort=(Sort)it.next(); sortid=sort.getId(); master=sort.getMaster(); sortname=sort.getName(); countHql="select count(*) from Topic as a where a.id="+sortid; topicNum=db.getCount(countHql); strHql="from Topic as a where a.sortid="+sortid+"order by id desc"; topicIt=db.OpenSql(strHql); if(topicIt.hasNext()){ Topic topic=(Topic)it.next(); lastTopicId = topic.getId(); lastTopic = topic.getTitle(); lastTopicTime = topic.getTime(); lastTopicOwner = topic.getOwner(); } sorts.add(new Sort( sortid, sortname, master, topicNum, lastTopicId, lastTopic, lastTopicTime, lastTopicOwner )); } return sorts; } 抛出的异常是: %%%% Error Creating SessionFactory %%%% org.hibernate.MappingException: Could not read mappings from resource: hibernate/sort.hbm.xml at org.hibernate.cfg.Configuration.addResource(Configuration.java:485) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390) at org.hibernate.cfg.Configuration.configure(Configuration.java:1310) at hibernate.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:30) at StudyBbs.User.checkUser(User.java:139) at StudyBbsAction.LoginAction.execute(LoginAction.java:46) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 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:228) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) at java.lang.Thread.run(Unknown Source) Caused by: org.hibernate.PropertyNotFoundException: field not found: id at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:97) at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:104) at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:104) at org.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:112) at org.hibernate.util.ReflectHelper.getter(ReflectHelper.java:89) at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:77) at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:276) at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:410) at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:343) at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:282) at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:153) at org.hibernate.cfg.Configuration.add(Configuration.java:386) at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:427) at org.hibernate.cfg.Configuration.addResource(Configuration.java:482) ... 26 more %%%% Error Creating SessionFactory %%%% org.hibernate.MappingException: Could not read mappings from resource: hibernate/user.hbm.xml at org.hibernate.cfg.Configuration.addResource(Configuration.java:485) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390) at org.hibernate.cfg.Configuration.configure(Configuration.java:1310) at hibernate.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:69) at hibernate.HibernateSessionFactory.getSession(HibernateSessionFactory.java:53) at StudyBbs.User.checkUser(User.java:139) at StudyBbsAction.LoginAction.execute(LoginAction.java:46) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 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:228) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) at java.lang.Thread.run(Unknown Source) Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping StudyBbs.User at org.hibernate.cfg.Mappings.addClass(Mappings.java:118) at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:154) at org.hibernate.cfg.Configuration.add(Configuration.java:386) at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:427) at org.hibernate.cfg.Configuration.addResource(Configuration.java:482) ... 27 more 2008-8-11 18:41:20 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet action threw exception java.lang.NullPointerException at StudyBbs.User.checkUser(User.java:140) at StudyBbsAction.LoginAction.execute(LoginAction.java:46) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 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:228) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) at java.lang.Thread.run(Unknown Source) 急。。。。。希望你们能帮到我,感谢所有看到此贴的人 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |