hibernate.hbm.xml怎么写的?你没连接上数据库

解决方案 »

  1.   

    hibernate.hbm.xml文件如下:
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration>
       
        <session-factory>
     
            <property name="connection.datasource">java:com/env/jdbc/quickstart</property>
            <property name="show sql">false</property>
            <property name="dialect">net.sf.hibernate.dialect.SQLServerDialect</property>
            <!-- Mapping files -->
            <mapping resource="Cat.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>是不是哪里写错了???还有在server.xml里面增加的一段如下:
    <Context path="/quickstart" docBase="quickstart">
               <Resource name="jdbc/quickstart" scope="Sharebale" 
            type="javax.sql.DataSource"/>
               <ResourceParams name="jdbc/quickstart">
                   <parameter>
                       <name>factory</name>
            <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
                   </parameter>
                   <!-- DBCP datasourc connection settings -->
                   <parameter>
                       <name>url</name>
                       <value>jdbc:microsoft: sqlserver://localhost:1433/quickstart</value>
                   </parameter>
                   <parameter>
                       <name>driverClassName</name>
                       <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
                   </parameter>
                   <parameter>
                       <name>username</name>
                       <value>sa</value>
                   </parameter>
                   <parameter>
                       <name>password</name>
                       <value>01478520</value>
                   </parameter>
                
                   <!-- DBCP connection pooling options -->
                   <parameter>
                       <name>maxWait</name>
                       <value>3000</value>
                   </parameter>
                   <parameter>
                       <name>maxIdle</name>
                       <value>100</value>
                   </parameter>
                   <parameter>
                       <name>maxActive</name>
                       <value>10</value>
                   </parameter>
                </ResourceParams>
             </Context>
      

  2.   

    用hibernate没错!!!
    首先确定一下你做这个例子的模式。
    很多初学hibernate的朋友通常在做这个cat例子的时候,是把存储hibernate的代码放在一个普通的类的main里来进行的,这不正确,hibernate是要有服务器支持才能使用的,你已经使用了tomcat做服务器也没有错,希望你是把你的处理代码放在一个javabean里、或servlet或者直接在jsp页面里进行的。
    然后是tomcat的配置,启动tomcat后,打开http://localhost:8080/admin
    进入控制台,在左边的树里展开Host,直到/ROOT的配置一项,添加一个数据源,名称当然是jdbc/quickstart,配置按照你的数据类型来填写。不建议手动去书写server.xml的配置信息,不太安全。
    然后把你的这个例子项目,包括编译好的servlet等文件存放的/WEB-INF/这个文件夹全部拷贝到tomcat安装目录下的webapp/ROOT目录下,重新启动tomcat试试。
      

  3.   

    多谢楼上,我的这个例子来自于hibernate2的中文手册,
    代码完全是放在一个servlet里面的,
    谢谢了哈,
      

  4.   

    我还有个问题没搞明白,tomcat难道自带了jndi服务吗?
    还有为什么我定义数据源的时候明明jndi名字是jdbc/quickstart,后面为什么用的确是java;com/env/jdbc/quickstart呢?
      

  5.   

    hibernate2的中文手册那个例子,我也试过,連不上,也不知到是哪里配错了我是在JNDI是在tomcat图形配置的,但一直連不上,后来直接在Hibernate配置数据源就可以通过了建议你先直接连接数据源,不要用JNDI
      

  6.   

    在web.xml中加上:
    <resource-ref>
    <description> Datasource example</description>
    <res-ref-name>jdbc/quickstart</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
       </resource-ref>