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

この場合、データベースが起動/実行されていることを確認してください。使用する代わりに使用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 に答える