【问题标题】:SQL Unknown DatabaseSQL 未知数据库
【发布时间】:2015-08-23 06:35:34
【问题描述】:

所以,我正在尝试用 Java 创建一个 SQL 数据库。这种方法在我以前的程序中有效,但我只是想确保它是正确的。我收到“未知数据库”错误,这似乎很奇怪,因为我正在创建数据库。

这是我的 Java 代码:

Connection connection = DriverManager.getConnection(url, userName, password);
String sql = "CREATE TABLE IF NOT EXISTS " + tableName + "(itemid INTEGER PRIMARY KEY, amount INTEGER, currprice INTEGER, pricefloor INTEGER, priceceiling INTEGER, currbought INTEGER, pricechange INTEGER, dynamicpricing BOOLEAN);";
String sql2 = "CREATE DATABASE IF NOT EXISTS " + databaseName + ";";
Statement statement = connection.createStatement();
statement.executeUpdate(sql2);
statement.executeUpdate("USE " + databaseName + ";");
statement.executeUpdate(sql);
statement.close();

当然,这一切都包含在 try/catch 语句中。如果有错误,我会捕获堆栈跟踪。我使用的是 MySQL,我的 url、用户名和密码都是正确的(三重检查!)。

【问题讨论】:

  • 您究竟在哪里得到异常?
  • 我相信它无法连接。

标签: java mysql sql


【解决方案1】:

不确定与 Java 相关的任何错误,但请从以下代码语句中删除 ;

statement.executeUpdate("USE " + databaseName + ";");

应该是

statement.executeUpdate("USE " + databaseName);

更多信息请参见MySQL Documentation

【讨论】:

  • 谢谢,我已经删除了。没有解决问题,但有正确的语法绝对是件好事。
  • 您确定您的create database 正在成功执行吗?
【解决方案2】:

我认为您在这里使用的 dbname 还不存在?

Connection connection = DriverManager.getConnection(url, userName, password);

使用

url = "jdbc:mysql://ip/"

没有数据库名

【讨论】:

  • 嗯,这是真的 - 但是现在我收到“未选择数据库”错误。
【解决方案3】:

我认为您需要在连接字符串本身中提供 url 和数据库。从这里 - JDBC MYSQL Connection without specifying database? - 也许你的 mysql jdbc 版本不支持在不指定数据库的情况下连接到 mysql。

你应该尝试类似 -

url = "jdbc:mysql://ip:port/dbname"

【讨论】:

    猜你喜欢
    • 2017-11-26
    • 2022-06-15
    • 2022-11-29
    • 2018-03-21
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2016-01-09
    相关资源
    最近更新 更多