MySQL的驱动引起Hibernate无法正常运行的问题

本文适合阅读者:看过Hibernate的中文文档,并且亲自尝试了在应用程序中使用,并且成功的人;同时熟悉Tomcat中连接池配置的人。

原来看过关于Hibernate的应用,那时是在应用程序中使用的;最近有时间,继续学习,准备在Web中尝试。按照Hibernate的中文文档 与猫同乐这节,亲自动手尝试。

开发环境:JBuilder X Tomcat 5.0.16MySQL  4.0.16

首先使用过MySQL的朋友知道,MySQLJDBC驱动有两种,一个是单jar包的(mysql-connector-java-3.1.6-bin.jar),下载地址: http://dev.mysql.com/downloads/ 页面中的 MySQL Connector/J 3.1推荐使用的。还有一种是两个jar包的(mysql_comp.jar, mysql_uncomp.jar)。这两种包对应的Driver_Class写法也不一样,前者是com.mysql.jdbc.Driver,后者是 org.gjt.mm.mysql.Driver

我原来一直使用的是两个包的驱动,因为它对中文支持较好,插入数据或从数据库中取数据时,不必在URL后面带参数。所以这次尝试也是使用的它。

首先按照帮助文档写的都一步步做了,当时在办公室用的DB2 7.2,配置了server.xml, hibernate.cfg.xml,Cat.hbm.xml文件一切正常,运行成功。于是决定试试MySQL的数据库。可问题也来了。

将两个包的jar驱动,放入了common/lib下,重新修改server.xml文件,Driver的写法采用” org.gjt.mm.mysql.Driver”。重新启动Tomcat,运行test.jsp页面,出现错误。Tomcat的控制台并没有错误消息,只是在jsp页面中提示:

exception

javax.servlet.ServletException
    
    
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
    
    
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
    
    
         org.apache.jsp.test_jsp._jspService(test_jsp.java:69)
    
    
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    
    
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    
    
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    
    
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    
    
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    
    
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    
    

root cause

java.lang.ExceptionInInitializerError
    
    
         testpkg.HibernateUtil.(HibernateUtil.java:16)
    
    
         org.apache.jsp.test_jsp._jspService(test_jsp.java:49)
    
    
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    
    
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    
    
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    
    
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    
    
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    
    
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    
    

当时我重新检查程序,查看配置文件,可和连DB2的相同,没有大的改动。忽然郁闷了!!!

接下来的几天都被这个问题困扰,我直接在jsp页面中使用连接池都是好的,网上的文章也搜遍了都没这个问题,人家都是用的两个包驱动的写法,都说可以正常运行。

昨天,忽然想了一下,用一个包的驱动试试,于是修改对应配置,一切可以成功。只不过是可以插入中文,但是取出来的时候是问号。所以大家要在URL后面带参数。

   好了,希望文章对碰到过同样问题的朋友有所帮助。不过这样的可能性还是很小的。如果大家还有更好的解决办法,希望提供参考。
                                                                  2005-01-28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值