先说明一下我对此错的解决方案:
1 由于在网上找了很的办法,首先当然是把hibernate.cfg.xml和映射文件Zuser.hbm.xml左看右看,改了又改,1)我先认为是我数据表中有主,外键,所以我就另外建表(就是现在的表,等下我贴出)结果当然不是(没办法)2)我认为是自动生成的映射文件是大写的原因,我就把大写全改成小写,结果当然不是
现在我就把我的文件贴出来:hibernate.cfg.xml     <hibernate-configuration>
<session-factory>
<property name="jdbc.batch_size">5</property>
<!-- Database connection settings -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<property name="hibernate.proxool.pool_alias">DBPool</property>
<property name="hibernate.proxool.xml">proxool.xml</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<mapping resource="com/message/Zuser.hbm.xml" />
</session-factory>
</hibernate-configuration>
在这里我说一下这个:proxool.xml  本来它建的是大写的名字(Poxool.xml)我就不明白大写它报错说找不到(当然是不是跟你存放的位置有关呢?)
Poxool.xml   <something-else-entirely>
<proxool>
<alias>DBPool</alias>
<driver-url>jdbc:oracle:thin:@localhost:1521:admin07</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="System" />
<property name="password" value="sql" />
</driver-properties>
<connection-lifetime>5000</connection-lifetime>
<maximum-connection-count>1000</maximum-connection-count>
<minimum-connection-count>30</minimum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE from dual</house-keeping-test-sql>
</proxool>
</something-else-entirely>
说明:<house-keeping-test-sql>这个东西我不懂意思
Zuser.hbm.xml 在这里我就是把里面的大写改成了小写
<hibernate-mapping>
    <class name="com.message.Zuser" table="zuser" schema="system">
        <id name="zuid" type="java.lang.Integer">
            <column name="zuid"/>
            <generator class="native" />
        </id>
        <property name="zuname" type="java.lang.String">
            <column name="zuname" length="30" />
        </property>
        <property name="zupwd" type="java.lang.String">
            <column name="zupwd" length="30" />
        </property>
        <property name="zurepwd" type="java.lang.String">
            <column name="zurepwd" length="30" />
        </property>
        <property name="zuemail" type="java.lang.String">
            <column name="zuemail" length="30" />
        </property>
        <property name="zurecord" type="java.lang.String">
            <column name="zurecord" length="10" />
        </property>
    </class>
</hibernate-mapping>

解决方案 »

  1.   

    在这里我把action里面的东西跟这个方法贴出来 action: String userName = request.getParameter("userName");
    String userPassword = request.getParameter("userPwd");
    //创建连接
    Zuser um = null;
    MessageHibernateDAO mhdao = new MessageHibernateDAO();
    String hsql = "select zu.zuname,zu.zupwd,zu.zurepwd,zu.zuemail,zu.zurecord from Zuser as zu where zu.zuname = '"+userName+"'";
    List listUser = mhdao.getObjects(hsql);
    //关闭连接
    HibernateSessionFactory.closeSession();
    if(listUser == null)
    {
    return (mapping.findForward("rlogon"));
    }
    else
    {
    return (mapping.findForward("messageIndex"));
    }
    这是里面调用的方法:public List getObjects(String hsql)
    {
    Session session = HibernateSessionFactory.currentSession();//.openSession();
    session.beginTransaction();
    Query query = session.createQuery(hsql);
    System.out.println("query=="+query);
    List result = query.list();
    System.out.println("result="+result);
    return result;
    }
    这是表的虚类:private int zuid;
         private String zuname;
         private String zupwd;
         private String zurepwd;
         private String zuemail;
         private String zurecord;
        // Constructors
        /** default constructor */
        public AbstractZuser() {
        }
        /** full constructor */
        public AbstractZuser(String zuname, String zupwd, String zurepwd, String zuemail, String zurecord) {
            this.zuname = zuname;
            this.zupwd = zupwd;
            this.zurepwd = zurepwd;
            this.zuemail = zuemail;
            this.zurecord = zurecord;
        }
        // Property accessors
        public int getZuid() {
            return this.zuid;
        }   
        public void setZuid(int zuid) {
            this.zuid = zuid;
        }
        public String getZuname() {
            return this.zuname;
        }  
        public void setZuname(String zuname) {
            this.zuname = zuname;
        }
        public String getZupwd() {
            return this.zupwd;
        }   
        public void setZupwd(String zupwd) {
            this.zupwd = zupwd;
        }
        public String getZurepwd() {
            return this.zurepwd;
        }  
        public void setZurepwd(String zurepwd) {
            this.zurepwd = zurepwd;
        }
        public String getZuemail() {
            return this.zuemail;
        }   
        public void setZuemail(String zuemail) {
            this.zuemail = zuemail;
        }
        public String getZurecord() {
            return this.zurecord;
        }
        public void setZurecord(String zurecord) {
            this.zurecord = zurecord;
        }
      

  2.   

    dgxsz(动感小山猪) 所说的有道理,我也是这么做的。camel0104() 的代码贴的太长了,这也太考验人的耐性了
      

  3.   

    建议1. hibernate.cfg.xml不要用映射
        2. Zuser.hbm.xml 指定的 com.message.Zuser  用最简单的,不要用构造方法
        3. 既然指定了com.message.Zuser路径 Zuser.hbm.xml和hibernate.cfg.xml放在同级目录下最好。