java.sql.SQLException : No database selected - why? 异常

标签 java mysql jdbc odbc sqlexception


最近几天我试图学习如何通过 Java 访问 mySQL 数据库。 我能够加载驱动程序并连接到数据库(至少我是这么认为的,因为我在那里没有遇到异常......)

代码是:

    import java.sql.*;
    public class test
    {
        public static void main(String[] args)
        {
            try
            {
              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              System.out.println("driver loaded...");
            }
            catch(ClassNotFoundException e){
              System.out.println("Error in loading the driver..."+e);
              System.exit(0);
            }
            try
            {
                Connection dbConnection= DriverManager.getConnection("jdbc:odbc:test","root","password");
                System.out.println("Connection successful...");
                Statement stmt = dbConntection.createStatement();
                stmt.executeUpdate("create table Accounts ( name char(20) )");
             }
             catch(SQLException e)
             {
                  System.out.println("database-ConnectionError: "+e);
                  System.exit(0);
             }   
        }
    }

当我执行它时,它说:

driver loaded...
Connection successful...
database-ConnectionError: java.sql.SQLException: [MySQL][ODBC 5.2(w) Driver][mysqld-5.5.31]No database selected

我真的不知道这个问题,因为我认为数据库是在“getConnection”过程中选择的....
我试图通过添加此行来选择数据库:

    stmt.executeUpdate("use test;");

创建声明后。

不幸的是它没有工作,因为我得到另一个异常,它说我应该检查语法。我也不明白,因为在我的命令行中它工作得很好...... 我不知道是否可以通过 Java 使用这些类型的命令,如果不能,请原谅我的错误。

我希望你能帮助我,我在自己的搜索过程中没有错过解决方案!

已经感谢所有回复并花时间解决我的问题的人!

附言。如果我忘记指出一些重要信息(我想我没有指出)请询问:)

编辑:我还尝试在运行时创建一个新数据库

     stmt.executeUpdate("CREATE DATABASE test;");

这确实有效,但也不会选择数据库...

最佳答案

在添加表之前,您首先必须选择一个数据库。 你可以创建一个新的数据库:

  CREATE DATABASE database_name

你可以连接到一个特定的数据库:

String url = "jdbc:mysql://localhost/databasename";
String username = "test";
String password = "test";
Connection connection = DriverManager.getConnection(url, username, password);

关于java.sql.SQLException : No database selected - why? 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16927863/

相关文章:

java - java jSTL 中外键的 DAO Controller

java - 我想将我的 jar 文件放入 html 代码中

java - 在Java中通过SSH隧道运行远程命令

java - 为什么不推荐使用@EnableOAuth2Sso?

mysql - 非常小的 MySQL 表会忽略索引吗?

java.sql.SQLData - Oracle 对象映射问题

java - BeanShell 命令行解释器功能

php - SQL 命令在 Laravel 5.7 中未给出预期结果。我需要修改我的表或查询吗?

mysql - 使用 HAVING 和 GROUP BY 获取总金额

java - JDBC 使用 SELECT FOR UPDATE 锁定一行,不起作用