首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

hibernate的一个有关问题弄了2天了

2012-03-31 
hibernate的一个问题弄了2天了19:25:52,593INFOEnvironment:Hibernate3.1.319:25:52,656INFOEnvironment:l

hibernate的一个问题弄了2天了
19:25:52,593     INFO   Environment:   Hibernate   3.1.3

19:25:52,656     INFO   Environment:   loaded   properties   from   resource   hibernate.properties:   {hibernate.connection.driver_class=com.mysql.jdbc.Driver,   hibernate.cglib.use_reflection_optimizer=true,   hibernate.dialect=org.hibernate.dialect.MySQLDialect,   hibernate.jdbc.batch_size=0,   hibernate.connection.username=root,   hibernate.connection.url=jdbc:mysql://localhost:3306/user,   hibernate.show_sql=true,   hibernate.connection.password=****,   hibernate.connection.pool_size=10}

19:25:52,687     INFO   Environment:   using   CGLIB   reflection   optimizer

19:25:52,687     INFO   Environment:   using   JDK   1.4   java.sql.Timestamp   handling

19:25:53,046     INFO   Configuration:   configuring   from   resource:   /hibernate.cfg.xml

19:25:53,046     INFO   Configuration:   Configuration   resource:   /hibernate.cfg.xml

19:25:53,218     INFO   Configuration:   Reading   mappings   from   resource:   com/iustice/User.hbm.xml

19:25:53,281   ERROR   XMLHelper:   Error   parsing   XML:   XML   InputStream(7)   The   content   of   element   type   "id "   must   match   "(meta*,column*,type?,generator?) ".

19:25:53,296   ERROR   XMLHelper:   Error   parsing   XML:   XML   InputStream(10)   The   content   of   element   type   "class "   must   match   "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*) ".

19:25:53,359   ERROR   HibernateUtil:   Initial   SessionFactory   creation   failed.

org.hibernate.MappingException:   Could   not   read   mappings   from   resource:   com/iustice/User.hbm.xml



StandardWrapperValve[action]:   Servlet.service()   for   servlet   action   threw   exception

java.lang.ExceptionInInitializerError

java.lang.ExceptionInInitializerError

at   com.HibernateUtil. <clinit> (HibernateUtil.java:16)

at   com.iustice.user.LoginAction.execute(LoginAction.java:26)


Caused   by:   org.hibernate.MappingException:   Could   not   read   mappings   from   resource:   com/iustice/User.hbm.xml

at   org.hibernate.cfg.Configuration.addResource(Configuration.java:485)

Caused   by:   org.xml.sax.SAXParseException:   The   content   of   element   type   "id "   must   match   "(meta*,column*,type?,generator?) ".

这些是提示


<?xml   version= '1.0 '   encoding= 'UTF-8 '?>
<!DOCTYPE   hibernate-mapping   PUBLIC
"-//Hibernate/Hibernate   Mapping   DTD   3.0//EN "
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd ">
<hibernate-mapping   package= "com.iustice ">
<class   name= "User "   table= "user ">


<id   name= "id "   column= "Id "   type= "int "   >
  <generator   class= "increment "> </generator>
</id>
<property   name= "username "   column= "username "     unique= "true "/>
<property   name= "password "   column= "password "   />
</class>
</hibernate-mapping>

这些是   *.hbm.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.url "> jdbc:mysql://localhost/user </property>
<property   name= "connection.driver_class "> org.gjt.mm.mysql.Driver </property>
<property   name= "connection.username "> root </property>
<property   name= "connection.password "> 002312708 </property>

<property   name= "dialect "> org.hibernate.dialect.MySQLDialect </property>
<property   name= "connection.pool_size "> 10 </property>
<property   name= "current_session_context_class "> thread </property>
<property   name= "cache.provider_class "> org.hibernate.cache.NoCacheProvider </property>
<property   name= "show_sql "> true </property>
<!--
<property   name= "hbm2ddl.auto "> create </property>
-->
<mapping   resource= "com/iustice/User.hbm.xml "   />


</session-factory>

</hibernate-configuration>


这些是*cfg.xml


--   Table:   user

--   DROP   TABLE   `user`;

CREATE   TABLE   `user`   (
    `Id`                 int   NOT   NULL,
    `username`     varchar(20)   CHARACTER   SET   `gbk`   COLLATE   `gbk_bin`   NOT   NULL,
    `password`     varchar(40)   CHARACTER   SET   `gbk`   COLLATE   `gbk_bin`   NOT   NULL,
    /*   Keys   */
    PRIMARY   KEY   (`Id`)
)   ENGINE   =   MyISAM
    PACK_KEYS   =   1
    DELAY_KEY_WRITE   =   1
    CHARACTER   SET   `utf8`   COLLATE   `utf8_general_ci`;

这些是SQL语句

package   com.iustice;
import   java.io.Serializable;
import   java.util.HashSet;
import   java.util.Set;
public   class   User   implements   Serializable   {
        private   int   id;
        private   String   username;


        private   String   password;
        public   User(){}
        public   String   getPassword()   {
                  return   password;
          }

          public   void   setPassword(String   password)   {
                  this.password   =   password;
          }

          public   void   setUsername(String   username)   {
                  this.username   =   username;
          }
          public   String   getUsername()   {
                  return   username;
          }
          public     long     getId(){
                  return     id;
          }
          public     void     setId(int   id){
                  this.id=id;
          }


}
这些是实体类


package   com.iustice.user;

import   org.apache.struts.action.ActionForm;
import   org.apache.struts.action.ActionErrors;
import   org.apache.struts.action.ActionMapping;
import   javax.servlet.http.HttpServletRequest;

public   class   Login   extends   ActionForm   {
        private   String   password;
        private   String   username;
        public   String   getPassword()   {
                return   password;
        }

        public   void   setPassword(String   password)   {
                this.password   =   password;
        }

        public   void   setUsername(String   username)   {
                this.username   =   username;
        }
        public   String   getUsername()   {
                return   username;
        }

        public   ActionErrors   validate(ActionMapping   actionMapping,
                                                                  HttpServletRequest   httpServletRequest)   {
                        /**   @todo:   finish   this   method,   this   is   just   the   skeleton.*/
                return   null;
        }



        public   void   reset(ActionMapping   actionMapping,
                                            HttpServletRequest   servletRequest)   {
        }
}


package   com.iustice.user;
import   java.io.InputStream;
import   java.util.Properties;
import   javax.servlet.http.HttpServletRequest;
import   javax.servlet.http.HttpServletResponse;
import   org.apache.commons.beanutils.PropertyUtils;
import   org.apache.struts.action.Action;
import   org.apache.struts.action.ActionForm;
import   org.apache.struts.action.ActionForward;
import   org.apache.struts.action.ActionMapping;
import   org.hibernate.Query;
import   org.hibernate.Session;
import   com.DatabaseGenerate;
import   com.HibernateUtil;
import   java.lang.reflect.InvocationTargetException;

public   class   LoginAction   extends   Action   {
        public   ActionForward   execute(ActionMapping   mapping,
                                                                  ActionForm   form,
                                                                  HttpServletRequest   request,
                                                                  HttpServletResponse   response)   throws
                        NoSuchMethodException,   InvocationTargetException,
                        IllegalAccessException   {
                String   username=(String)PropertyUtils.getSimpleProperty(form, "username ");
                String   password=(String)PropertyUtils.getSimpleProperty(form, "password ");
                Session   s=HibernateUtil.currentionSession();
                Query   q=s.createQuery( "from   User   u   where   u.username= ' "+username+ " '   and   password= ' "+password+ " ' ");
                if(q.list().isEmpty()){
                        HibernateUtil.closeSession();
                        return(mapping.findForward( "loginfail "));
                }
                else{
                          HibernateUtil.closeSession();
                          request.getSession().setAttribute(username,username);


                          return   mapping.findForward( "loginsuccess ");
                }
        }


}

这些是代码
请大家给看一看吧  
我实在是弄捕处来了~~~~



[解决办法]
*.hbm.xml中class name要写完整的包名
既然是mappingexpection那么你应该要想到是映射文件没配制好
[解决办法]
你自己试验一下 用eclipse工具装上middlegen插件 在数据库里建立一张表,使用middlegen自动创建所有的东西(配置文件和javabean),估计不会有错了,按照这个过程来试一次吧
[解决办法]
帮你顶,不过觉得可能是你程序写的有问题,貌似不是配置文件的问题.
[解决办法]
应该是你的配置文件的问题,因为已经提示你XML读的时候有错误了
[解决办法]
<id name= "id " column= "Id " type= "int " >
<generator class= "increment "> </generator>
</id>

以上错
---------------------------------------------

Caused by: org.xml.sax.SAXParseException: The content of element type "id " must match "(meta*,column*,type?,generator?) ".
----------------------------------------------

<id name= "id " type= "int ">
<column name= "id "/>
<generator class= "increment "/>
</id>

热点排行