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

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

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

开发环境:JBuilder X 、Tomcat 5.0.16、MySQL 4.0.16、

首先使用过MySQL的朋友知道,MySQL的JDBC驱动有两种,一个是单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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航