欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何解决由hibernate和mysql的连接问题: MySQLHibernateTomcatJavaLinux 

程序员文章站 2022-07-13 08:14:09
...
环境:tomcat5.0.28,JDK1.4.2,spring1.1.4,hibernate2.1.7,webwork2.1.7,linux操作系统
先将编译好的文件打包成war文件,然后上传到远程linux服务器.放到tomcat/webapps/目录下.关闭tomcat服务器.
[root@localhost bin]# ./catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME:       /usr/java/JDK1.4
重新启动tomcat:
[root@localhost bin]# ./catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME:       /usr/java/JDK1.4

在浏览器里输入访问地址,抛出如下的异常:
Could not create Hibernate transaction; nested exception is net.sf.hibernate.exception.GenericJDBCException: Cannot open connection
如何解决这个问题:
我先写了一个test.jsp文件:
前提条件:
在mysql里面创建一个数据库database,
在database里面新建一个表:test
create table if not exists test
(
   test_id                      integer   not null AUTO_INCREMENT,
   test_name                    varchar(50),
   description                    text,
   primary key (test_id)
);
内容如下:
<%@ page contentType="text/html;charset=utf-8"%>   
<%@ page import="java.sql.*"%>
<html>
<body>
<table>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/database?user=root&password=root" ;
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
String query="select * from tb_test order by test_id";
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
        String testName=rs.getString("test_name");
        String description=rs.getString("description");
        out.print("<tr><td>"+testName+"</td>"+"<td>"+description+"</td></tr>");
}
%>
</table>
</body>
</html>
页面不能正常显示. 看到的堆栈信息放到google里面g一下,原来数据库驱动版本过低.我用的是mysql-connector-java-3.0.8-stable-bin.jar,然后我换成mysqldriver.jar,访问没有问题了.