0

我正在尝试在内存中创建一个临时表,以便在其中存储一些数据并在应用程序生命周期内使用它。

我正在尝试执行以下操作:

StringBuilder sb = new StringBuilder();
sb.append("CREATE TEMPORARY TABLE XmlItems ENGINE=MEMORY AS (");
// Continue with columns definitions
sb.append(")");

Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/");
Statement stat = conn.createStatement();
stat.executeUpdate(sb.toString());

但是会抛出以下异常:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

我猜它必须对连接字符串做一些事情..

有任何想法吗?

4

3 回答 3

0

您没有在 jdbc 连接 URL 中提供模式名称。在 URL 末尾添加架构名称后尝试。

jdbc:mysql://localhost:3306/myschema
于 2013-03-05T12:27:29.423 回答
0

检查以确保数据库在这种情况下 mysql 已启动/运行,String尽管您没有添加要使用的数据库名称而不是"jdbc:mysql://localhost:3306/"使用,但连接看起来很好"jdbc:mysql://localhost:3306/databae_name"

于 2013-03-05T12:28:32.527 回答
0

连接字符串必须包含要连接的数据库模式。

DriverManager.getConnection("jdbc:mysql://localhost:3306/myTestDB");

此外,请确保 MySQL 正在实际运行。“通信链路故障”听起来更像是拒绝连接到端口 3306。

于 2013-03-05T12:29:26.407 回答