Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Debian服务器上使用Tomcat的JDBC_Java_Mysql_Jdbc_Debian_Tomcat7 - Fatal编程技术网

Java 在Debian服务器上使用Tomcat的JDBC

Java 在Debian服务器上使用Tomcat的JDBC,java,mysql,jdbc,debian,tomcat7,Java,Mysql,Jdbc,Debian,Tomcat7,我有一台Debian服务器。 我正试图在上面运行一个JSP网站。我使用MySQL和tomcat7.0.54 现在我的问题是: 当我发送包含所有数据的表单时,会出现以下错误: No connection to jdbc:mysql://localhost:3306/database?user=root&password=***** 在终端,我可以访问数据库 这是我的代码: package com.ubs.jdbc; import java.sql.Connection; import j

我有一台Debian服务器。 我正试图在上面运行一个JSP网站。我使用
MySQL
tomcat7.0.54

现在我的问题是: 当我发送包含所有数据的表单时,会出现以下错误:

No connection to jdbc:mysql://localhost:3306/database?user=root&password=*****
在终端,我可以访问数据库

这是我的代码:

package com.ubs.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;

 public class DBConnector
{

private static Connection con = null;

// HIER DEN CONNECT STRING ANPASSEN //
private String connectString = "jdbc:mysql://localhost:3306/swissskills?user=root2&password=swissskills";  /* CHANGE */

private Connection openConnection()
{
    try
    {
        Class.forName( "com.mysql.jdbc.Driver" );
        con = DriverManager.getConnection( connectString ); 
        return con;
    }
    catch( Exception e)
    {
        System.out.println( "No connection to " + connectString ); 
    }
    return null;
}

public static Connection getConnection()
{
    if( con == null )
    {
        return new DBConnector().openConnection();
    }
    return con;
}

public static void closeConnection()
{
    try
    {
        getConnection().close();
        con = null;
    }
    catch( Exception e )
    {
        System.out.println( "CLOSE CONNECTION: " + e.getMessage() );
    }
}    
}

我做错了什么?

安装Mysql JDBC

# apt-get install libmysql-java 
为所有用户/etc/environment设置环境:

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
CLASSPATH=".:/usr/share/java/mysql.jar:/usr/share/java/postgresql-jdbc4.jar"
注意:使用已安装的JDK更改/usr/lib/jvm/java-8-openjdk-amd64

使用以下代码测试您的连接:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

class TestDB {

    /*

      /usr/share/java

      http://dev.mysql.com/doc/connector-j/5.1/en/

      https://jdbc.postgresql.org/documentation/documentation.html

    */

   static Connection conn = null;   

   public static void main(String[] args) {

      // MySQL

      try {

         System.out.println("Loading Class com.mysql.jdbc.Driver");

         Class.forName("com.mysql.jdbc.Driver") ;

         System.out.println("Loading com.mysql.jdbc.Driver Successful");

         conn = DriverManager.getConnection("jdbc:mysql://localhost/database?user=user&password=password");

         // Do something with the Connection

         System.out.println("Test Connection Successful");

      } catch (SQLException ex) {

         // handle any errors

         System.out.println("SQLException: " + ex.getMessage());

         System.out.println("SQLState: " + ex.getSQLState());

         System.out.println("VendorError: " + ex.getErrorCode());

      } catch (ClassNotFoundException ex) {

         System.out.println("Class Not Found: " + ex.getMessage());

      }
   }
}
注意:使用连接设置更改数据库、用户和密码


首先发布JDBC connect代码。捕获异常时,应调用e.printStackTrace(),同时发布堆栈跟踪结果。尝试从
connectString
中删除用户和密码,然后调用
DriverManager.getConnection(connectString,user,password)您是否将MySQL JDBC驱动程序jar文件添加到Tomcat的/lib文件夹中?如果您按照Jason的建议打印堆栈跟踪,我们就可以知道这是否是问题所在,因为调用
Class.forName(“com.mysql.jdbc.Driver”)
会得到
ClassNotFoundException
。我在lib文件夹中添加了一个驱动程序。但我不确定它是否适合debian。我一回到办公室,就会把它放进StackTrace。