在eclipse java的mysql中未选择任何数据库

在eclipse java的mysql中未选择任何数据库,java,mysql,eclipse,jdbc,Java,Mysql,Eclipse,Jdbc,我正在尝试从eclipse连接到mysql。首先,我在mysql中创建了表,然后构建了路径mysql-connector-java-5.1.38.bin.jar。我想向mysql插入一些数据,但我遇到了这个错误,我做错了什么 MYSQL 这里是我的java代码 Class.forName("com.mysql.jdbc.Driver"); //Connect to DB server Connection connection =

我正在尝试从eclipse连接到mysql。首先,我在mysql中创建了表,然后构建了路径mysql-connector-java-5.1.38.bin.jar。我想向mysql插入一些数据,但我遇到了这个错误,我做错了什么

MYSQL

这里是我的java代码

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

            //Connect to DB server
            Connection connection =
                    DriverManager.getConnection(jdbc:mysql://localhost:3306/?readers=true","ro‌​ot","password");

            System.out.println("Connected to MySQL");

            //Create Prepared Statement
            PreparedStatement statement =
                    connection.prepareStatement("insert into readers (Name,Surname,City,Capital) values(?,?,?,?)");
错误

Connected to MySQL
java.sql.SQLException: No database selected
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2551)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
    at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1192)
    at edu.sabanciuniv.ReadWriteThread.run(ReadWriteThread.java:57)
我在这里搜索了所有问题,但没有找到任何解决问题的方法。它不是重复的,这个问题的答案不是我的答案。我将我的数据库名“readers”写入了getConnection部分。

连接字符串的语法非常清楚:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] [?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

您没有指定数据库名称,因此驱动程序不知道将准备好的语句定向到哪个数据库。

例如,我没有指定DriverManager.getConnection(“jdbc:mysql://localhost:3306/?readers=true“,”根“,”密码“);我的数据库名是readers,我现在指定了它,但没有任何更改@jim Garrison仔细阅读连接字符串语法。您在错误的位置提供了数据库名称。可能不是原因,但您的SQL语句有错误。它提到数据库的名称“readers”,而不是表名“reader”。
jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] [?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]