CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

高分求解关于MYSQL和HIBERNATE连接发生错误问题,求解决方案

楼主Cupid1945(柳过)2005-06-03 10:49:44 在 Java / Web 开发 提问

小弟一直用MYSQL和HIBERNATE,但最近换了单位,在新单位想架设原来的structs框架,遇到了MYSQL和HIBERNATE连接问题.  
  我的TOMCAT中的SERVER.XML文件这样写的  
  <Context   path="/PopeDom"   reloadable="true"   docBase="D:\workspace\PopeDom"   workDir="D:\workspace\PopeDom\work\org\apache\jsp"   >  
      <Resource   name="RedstoneSql"   auth="Container"   type="javax.sql.DataSource"/>  
          <ResourceParams   name="RedstoneSql">  
        <parameter>  
        <name>factory</name>  
        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>  
        </parameter>  
        <parameter>  
        <name>maxActive</name>  
        <value>100</value>  
      </parameter>  
      <parameter>  
    <name>maxIdle</name>  
  <value>30</value>  
  </parameter>  
  <parameter>  
  <name>maxWait</name>  
  <value>10000</value>  
  </parameter>  
  <parameter>  
  <name>username</name>  
  <value>red</value>  
  </parameter>  
  <parameter>  
  <name>password</name>  
  <value>red</value>  
  </parameter>  
  <parameter>  
  <name>driverClassName</name>  
  <value>com.mysql.jdbc.Driver</value>  
  </parameter>  
  <parameter>  
  <name>url</name>  
  <value>jdbc:mysql://192.168.0.10/popedom</value>  
  </parameter>  
  </ResourceParams>  
  </Context>  
  驱动mysql-connector-java-3.0.11-stable-bin.jar已经加入TOMCAT的LIB中  
   
  hibernate.cfg.xml也写了  
  <property   name="connection.datasource">java:comp/env/RedstoneSql</property>  
  <property   name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>  
  <property   name="show_sql">true</property>  
  <property   name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
  <property   name="hibernate.connection.url">jdbc:mysql://192.168.0.10/popedom</property>  
  <property   name="hibernate.connection.username">red</property>  
  <property   name="hibernate.connection.password">red</property>  
   
  在web.xml中写了  
  <resource-ref>  
  <description>DB   Connection</description>  
  <res-ref-name>RedstoneSql</res-ref-name>  
  <res-type>javax.sql.DataSource</res-type>  
  <res-auth>Container</res-auth>  
  </resource-ref>  
  但小弟使用中报错  
  错误为  
  2005-06-03   10:14:25   [net.sf.hibernate.util.JDBCExceptionReporter]-[WARN]:38   -   SQL   Error:   0,   SQLState:   null  
  2005-06-03   10:14:25   [net.sf.hibernate.util.JDBCExceptionReporter]-[ERROR]:46   -   Cannot   create   JDBC   driver   of   class   ''   for   connect   URL   'null'  
  2005-06-03   10:14:25   [net.sf.hibernate.impl.SessionFactoryImpl]-[WARN]:178   -   Could   not   obtain   connection   metadata  
  org.apache.tomcat.dbcp.dbcp.SQLNestedException:   Cannot   create   JDBC   driver   of   class   ''   for   connect   URL   'null'  
  小弟使用的是ECLIPSE,小弟百思不得其解,望高手们帮忙  
  问题点数:100、回复次数:19Top

1 楼yxhzj(余华[学习J2EE中])回复于 2005-06-03 10:56:54 得分 50

第一:你的tomcat的数据源配置以前是否好用  
   
  第二:如果用hibernate,在web.xml那段配置应该是多余的  
   
  第三:你先单独测试下,数据源已经配置成功Top

2 楼yxhzj(余华[学习J2EE中])回复于 2005-06-03 10:59:13 得分 0

从你错误中,是驱动找不到或者数据源没有配置好  
  Top

3 楼querlang(编程浪子)回复于 2005-06-03 11:45:23 得分 10

很明显驱动程序找不到Top

4 楼Cupid1945(柳过)回复于 2005-06-03 11:58:17 得分 0

我写的  
  <!--测试数据源-->  
  <%@   page   contentType="text/html;   charset=gb2312"   %>  
  <%@   page   import="javax.naming.Context"   %>    
  <%@   page   import="javax.sql.DataSource"%>    
  <%@   page   import="javax.naming.InitialContext"%>    
  <%@   page   import="java.sql.*"%>    
   
  <%    
  DataSource   ds   =   null;    
  try{    
  Context   initCtx   =   new   InitialContext();    
  Context   envCtx   =   (Context)   initCtx.lookup("java:comp/env");    
  //从Context中lookup数据源。  
  ds   =   (DataSource)envCtx.lookup("RedstoneSql");    
  if(ds!=null)    
  {  
  out.println("已经获得DataSource!");    
  out.println("<br>");  
  Connection   conn   =   ds.getConnection();  
  Statement   stmt=conn.createStatement();  
  ResultSet   rst=stmt.executeQuery("select   *   from   login");  
  out.println("以下是从数据库中读取出来的数据");  
  while(rst.next())  
  {  
  out.println("bookName:"+rst.getString("Name"));  
  out.println("<br>");    
  }  
  }  
  else    
  out.println("连接失败!");    
  }  
  catch(Exception   ne)  
  {  
  out.println(ne);  
  }    
  %>  
   
  打印结果是  
   
  已经获得DataSource!    
  org.apache.tomcat.dbcp.dbcp.SQLNestedException:   Cannot   create   JDBC   driver   of   class   ''   for   connect   URL   'null'    
   
  我已经在TOMCAT的LIB中加入了mysql-connector-java-3.0.11-stable-bin.jar怎么办啊?我很着急Top

5 楼yxhzj(余华[学习J2EE中])回复于 2005-06-03 12:27:02 得分 0

把驱动放在\shared\lib\下,或者放在你的站点的web-inf\lib下,也可以在你的工程项目中,那这个驱动的路径写入你的eclipse的工程路径中,然后重新部署Top

6 楼Cupid1945(柳过)回复于 2005-06-03 14:34:50 得分 0

我在web-inf\lib下面加了mysql-connector-java-3.1.7-bin.jar这个驱动,在TOMCAT的COMMON/LIB下面也加了,在CLASSPATH里也写了C:\Tomcat\common\lib\mysql-connector-java-3.1.7-bin.jar,可还是报  
  org.apache.tomcat.dbcp.dbcp.SQLNestedException:   Cannot   create   JDBC   driver   of   class   ''   for   connect   URL   'null'    
  这个错,这是什么原因呢.是不是还有什么配置不完整的地方Top

7 楼yxhzj(余华[学习J2EE中])回复于 2005-06-03 14:50:42 得分 0

是驱动找不到了,你直接连mysql看看能不能连上就知道是不是驱动的问题了Top

8 楼tonynt(菜青虫)回复于 2005-06-03 16:21:21 得分 0

<property   name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>这个配置可能不对Top

9 楼tonynt(菜青虫)回复于 2005-06-03 16:21:21 得分 0

<property   name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>这个配置可能不对Top

10 楼tonynt(菜青虫)回复于 2005-06-03 16:24:51 得分 40

这个问题可能是你使用了和以前版本不同的Hibernate导致的;不同版本的Hibernate在dialect和hibernate.connection.driver_class两个属性上的配置可能是不一样的。  
  当前版本具体支持怎样的配置,可以到$Hibernate$\etc\hibernate.properties文件中查找。  
  如果你用hibernate3.0   dialect就不能用  
  <property   name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>  
  而要用  
  <property   name="dialect">org.hibernate.dialect.MySQLDialect</property>Top

11 楼Cupid1945(柳过)回复于 2005-06-03 16:33:24 得分 0

 
  import   java.sql.*;  
  public   class   mysql   {  
          public   static   void   main(String   args[])  
          {  
                  String   driver="com.mysql.jdbc.Driver";  
                  Statement   s=null;  
                  try  
                  {  
                            //加载driver  
                          Class.forName(driver).newInstance();          
                  }  
                  catch(Exception   e)  
                  {  
                          e.printStackTrace();  
                          return;  
                  }  
                  Connection   con=null;  
                  String   url="jdbc:mysql://localhost/query?user=red&password=red";  
                  try  
                  {  
                            //创建连接  
                          con=DriverManager.getConnection(url);  
                          //构造语句  
                          s=con.createStatement();  
                            //得到结果集  
                          ResultSet   rs=s.executeQuery("select   *   from   operator");  
                          while(rs.next())  
                          {  
                                  String   val;  
                                  val=rs.getString(2);  
                                  if(rs.wasNull())  
                                  {  
                                          val=null;  
                                  }  
                                  System.out.println(val);  
                          }  
                  }  
                  catch(SQLException   e)  
                  {  
                          e.printStackTrace();  
                  }  
                  finally  
                  {  
                          if(con!=null)  
                                  try  
                                  {  
                                          con.close();  
                                  }  
                                  catch(Exception   e)  
                                  {  
                                          e.printStackTrace();  
                                  }  
                  }  
          }  
   
  }  
   
  打印结果完全正常  
  admin  
  ad222  
  这是不是意味着驱动是对的啊  
  仅仅是配置不对  
  兄弟们一定要帮帮忙啊!好象有点眉目了  
  我将我的配置文件全部贴出来,请兄弟们帮忙Top

12 楼Cupid1945(柳过)回复于 2005-06-03 16:47:15 得分 0

hibernate.properties中  
   
  ##   MySQL  
   
  hibernate.dialect   net.sf.hibernate.dialect.MySQLDialect  
  hibernate.connection.driver_class   com.mysql.jdbc.Driver  
   
  hibernate.connection.url   jdbc:mysql://192.168.0.10/popedom  
  hibernate.connection.username   red  
  hibernate.connection.password   red  
   
  hibernate.cfg.xml中  
   
  <?xml   version='1.0'   encoding='utf-8'?>  
  <!DOCTYPE   hibernate-configuration   PUBLIC  
  "-//Hibernate/Hibernate   Configuration   DTD   2.0//EN"  
  "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">  
  <hibernate-configuration>  
   
  <session-factory>  
  <property   name="connection.datasource">java:comp/env/RedstoneSql</property>  
  <property   name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>  
  <property   name="show_sql">true</property>  
  <property   name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
  <property   name="hibernate.connection.url">jdbc:mysql://192.168.0.10/popedom</property>  
  <property   name="hibernate.connection.username">red</property>  
  <property   name="hibernate.connection.password">red</property>  
   
  <mapping   resource="com/redstoneinfo/popemon/hibernate/login.hbm.xml"/>  
  <mapping   resource="com/redstoneinfo/popemon/hibernate/authority.hbm.xml"/>  
  <mapping   resource="com/redstoneinfo/popemon/hibernate/part.hbm.xml"/>  
   
  </session-factory>  
  </hibernate-configuration>  
   
  web.xml中  
   
  <?xml   version="1.0"   encoding="ISO-8859-1"?>  
  <!DOCTYPE   web-app   PUBLIC   "-//Sun   Microsystems,   Inc.//DTD   Web   Application   2.3//EN"   "http://java.sun.com/dtd/web-app_2_3.dtd">  
  <web-app>  
          <servlet>  
  <servlet-name>action</servlet-name>  
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  
  <init-param>  
  <param-name>config</param-name>  
  <param-value>  
                            /WEB-INF/struts/struts-config.xml,  
                          </param-value>  
                  </init-param>  
                  <load-on-startup>1</load-on-startup>  
          </servlet>  
   
  <servlet-mapping>  
  <servlet-name>action</servlet-name>  
  <url-pattern>*.do</url-pattern>  
  </servlet-mapping>  
   
  <session-config>  
          <session-timeout>30</session-timeout>  
  </session-config>  
    <!--   Struts   Tag   Library   Descriptors   -->  
  <taglib>  
  <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>  
  <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>  
  </taglib>  
  <taglib>  
  <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>  
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>  
  </taglib>  
  <taglib>  
  <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>  
  <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>  
  </taglib>  
  <resource-ref>  
  <description>DB   Connection</description>  
  <res-ref-name>RedstoneSql</res-ref-name>  
  <res-type>javax.sql.DataSource</res-type>  
  <res-auth>Container</res-auth>  
  </resource-ref>  
  </web-app>  
   
  server.xml中  
      <Context   path="/PopeDom"   reloadable="true"   docBase="D:\workspace\PopeDom"   workDir="D:\workspace\PopeDom\work\org\apache\jsp"   >  
          <Resource   name="RedstoneSql"   auth="Container"   type="javax.sql.DataSource"/> <ResourceParams   name="RedstoneSql"> <parameter>  
                          <name>factory</name>       <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter>  
                    <parameter>  
                          <name>maxActive</name>  
                          <value>100</value>  
                    </parameter>  
                    <parameter>  
                        <name>maxIdle</name>  
                        <value>30</value>  
                    </parameter>  
                    <parameter>  
                        <name>maxWait</name>     <value>10000</value>  
                    </parameter>  
                    <parameter>  
                        <name>username</name>  
                        <value>red</value>  
                  </parameter>  
                  <parameter>  
                        <name>password</name>  
                        <value>red</value>  
                  </parameter>  
                  <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter>  
                  <parameter>  
                      <name>url</name> <value>jdbc:mysql://192.168.0.10/popedom</value>  
                  </parameter>  
                </ResourceParams>  
  </Context>  
  Top

13 楼Cupid1945(柳过)回复于 2005-06-03 16:53:33 得分 0

hibernate.properties中  
   
  ##   MySQL  
   
  hibernate.dialect   net.sf.hibernate.dialect.MySQLDialect  
  hibernate.connection.driver_class   com.mysql.jdbc.Driver  
   
  hibernate.connection.url   jdbc:mysql://192.168.0.10/popedom  
  hibernate.connection.username   red  
  hibernate.connection.password   red  
   
  hibernate.cfg.xml中  
  <!DOCTYPE   hibernate-configuration   PUBLIC  
  "-//Hibernate/Hibernate   Configuration   DTD   2.0//EN"  
  "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">  
  <hibernate-configuration>  
   
   
  <session-factory>  
   
  <property   name="connection.datasource">java:comp/env/RedstoneSql</property>  
  <property   name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>  
  <property   name="show_sql">true</property>  
  <property   name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
  <property   name="hibernate.connection.url">jdbc:mysql://192.168.0.10/popedom</property>  
  <property   name="hibernate.connection.username">red</property>  
  <property   name="hibernate.connection.password">red</property>  
   
  <mapping   resource="com/redstoneinfo/popemon/hibernate/login.hbm.xml"/>  
  <mapping   resource="com/redstoneinfo/popemon/hibernate/authority.hbm.xml"/>  
  <mapping   resource="com/redstoneinfo/popemon/hibernate/part.hbm.xml"/>  
   
  </session-factory>  
  </hibernate-configuration>  
   
   
  Top

14 楼yxhzj(余华[学习J2EE中])回复于 2005-06-03 17:02:41 得分 0

问一个小问题  
   
  你既然用了hibernate.properties  
   
  还有hibernate.cfg.xml??  
   
  它们用一个就够了  
   
   
  如果方便,你把东西给我吧,我给你调试好,然后给你吧  
   
   
  呵呵  
   
  我的MSN  
   
  YHX13757589241@hotmail.comTop

15 楼Cupid1945(柳过)回复于 2005-06-03 17:43:38 得分 0

那太谢谢了  
  我的Cupid1945@126.comTop

16 楼Cupid1945(柳过)回复于 2005-06-03 17:49:47 得分 0

呵呵,不能加你呀,你没注册PASSPORTTop

17 楼yxhzj(余华[学习J2EE中])回复于 2005-06-03 18:13:10 得分 0

写错了  
   
  yxh13757589241@hotmail.com  
   
  不好意思  
   
  Top

18 楼yxhzj(余华[学习J2EE中])回复于 2005-06-03 18:39:20 得分 0

怎么跑这么快  
   
  你的sql数据库的sql呢?Top

19 楼Cupid1945(柳过)回复于 2005-06-15 09:39:45 得分 0

我找到问题的所在,TOMCAT5.5和TOMCAT5.0实在有很多不同,所以我用的mysql-connector-java-3.0.11-stable-bin.jar似乎与其兼容有问题Top

相关问题

  • 800a000d错误,求解!
  • 求解CS1501错误?
  • mysql数据库错误,求解决方法!
  • 80040e10错误,求解答!
  • LNK2001错误(500分求解)
  • 编译错误求解!急
  • ASSERT 错误,请求解答
  • mssql_querry()错误,求解决?
  • 50分求解eclipse+hibernate 为什么运行总提示 Attribute "package" must be declared for element type "hibernate-mapping".错误
  • 求解连接mysql?

关键词

  • hibernate
  • 驱动
  • jdbc
  • mysql
  • 连接
  • struts
  • tomcat
  • 版本
  • dialect
  • redstonesql

得分解答快速导航

  • 帖主:Cupid1945
  • yxhzj
  • querlang
  • tonynt

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo