当前位置: 首页 > 知识库问答 >
问题:

没有选择数据库,尽管代码测试似乎有效

汪博达
2023-03-14

我完全不知所措,我不明白这里出了什么问题。我正在编写一个Java程序来获取一些数据库并将它们放入mySQL数据库中。我在构建路径中找到了JConnector:

构建路径截图

try {
                String driver = "com.mysql.cj.jdbc.Driver";
                String address = "jdbc:mysql://localhost:3306/?user=root/Exercise";
                Class.forName(driver);
                
                con = DriverManager.getConnection(address, username, password);
                System.out.println("Connection Success");
                  Statement st = con.createStatement();
                  int c =st.executeUpdate("CREATE TABLE test (Name VARCHAR(30))");
                  System.out.println("Table have been created.");
                  System.out.println(c+" Row(s) have been affected");
                return con;
            } catch (Exception e) { System.out.println(e);}

当我运行这段代码时,输出是:

Connection Success
java.sql.SQLException: No database selected

当我删除地址的"? user=root"部分时,它会给我:

java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the main URL sections.

这意味着,如果我无法连接到数据库,它将抛出异常,因此它显然正在连接,但它表示没有选择任何数据库,尽管我只是在几行前连接到它。事实上,返回行的语句行是我从另一个问题的解决方案中获取的代码,用于测试它,它们的代码似乎与我自己的代码几乎完全相同。我到底做错了什么?

编辑:由于g00se的回答,我只是尝试在没有“?user=root”的情况下再次运行它,但不知何故,我收到了一条与我已经发布的错误消息不同的错误消息。

java.sql.SQLSyntaxErrorException: Unknown database 'exercise'

编辑2:我刚刚想到,Eclipse在一个外部硬盘上,我不知道SQL数据库存储在哪里,但这可能是问题所在吗?他们在不同的驱动器上?

共有1个答案

万俟穆冉
2023-03-14

由于未知的原因,练习数据库(以及我拥有的其他数据库)丢失或被删除。感谢g00se建议我查看数据库,看看实际存在什么,阅读它解决了问题。

 类似资料:
  • 我有连接到我的数据库运行。我可以执行以下没有问题: 然而,在设置了JPA和持久类之后,我总是得到一个“未选择数据库”错误。看起来我不需要调整我的数据库配置(MySQL连接到Glassfish 3.1),否则上面的代码将无法工作。 正在拨打的电话: 我尝试过这个调用直接在MySQL工作台和它不工作。 这一个确实有效: 我一直在玩游戏,似乎无法在任何地方添加数据库名称(“人”)。以下是我目前掌握的情况

  • 问题内容: 是否可以在不设置数据库的情况下编写Django单元测试?我想测试不需要设置数据库的业务逻辑。尽管设置数据库的速度很快,但在某些情况下我真的不需要它。 问题答案: 你可以继承DjangoTestSuiteRunner的子类,并覆盖setup_databases和teardown_databases方法以进行传递。 创建一个新的设置文件,并将TEST_RUNNER设置为刚创建的新类。然后,

  • 这是我的功能: 我有十个测试,完全是这样的: 因此,根据我的计算,一次测试只会产生1/10,000次重复运行,10次测试只会产生1/1000次重复运行。然而,它在大约50%的运行中创建了副本,我不知道为什么。

  • 我有一个工作环境,包括我不管理的bom和JUnit5测试,除非我从如果我从它们不会被maven surefire插件拾取。我阅读了许多部分,并在一个较小的项目中进行了测试,它的工作和拾取,我不知道该在这篇文章中包含什么,因此您有足够的信息来查看问题所在。此外,如果有人能解释我阅读的导入的幕后内容,JUnit 4和5都需要使用surefire即 与版本 我很感激。 注意到 < li >我的测试都在s

  • 我正在运行具有以下配置的Web服务器: Ubuntu 14.04 PHP 5.5.9 PHP-FPM Nginx 当我在Symfony应用程序中上传文件时,我收到错误

  • 我使用Protege创建了一个本体,并添加了SWRL规则,使用Hermit Reasoner,一切都很好,但它不显示推断的DataProperties。 我尝试使用Pellet,它能够推断数据属性,但是,我创建的所有SWRL规则都不再起作用了。 这是隐士的窃听器吗?有解决办法吗?最诚挚的问候。