当前位置: 首页 > 面试题库 >

java.sql.SQLException:未选择数据库-为什么?

曾沛
2023-03-14
问题内容

最近几天,我试图学习如何通过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);
             }   
        }
    }

当我执行它时,它说:

驱动程序已加载…
连接成功…
数据库-ConnectionError:java.sql.SQLException:[MySQL] [ODBC 5.2(w)驱动程序]
[mysqld-5.5.31]未选择数据库


我真的不知道问题所在,因为我认为数据库是在“ getConnection”过程
中选择的…。我试图通过添加以下行来选择数据库:

    stmt.executeUpdate("use test;");

创建声明后。

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

希望您能为我提供帮助,在我自己搜索时不会错过任何解决方案!

感谢所有回答并利用我的时间解决我的问题的人!

ps。如果我忘记指出一些重要信息(我认为我没有这样做),请询问:)

编辑:我也试图在运行时创建一个新的数据库

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

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


问题答案:

首先,我正在考虑我的答案,以向您展示与MySQL数据库进行连接的另一种更好的方法,它更容易使用,并且nu-expected Exception 更少。
您需要执行一些步骤:

  1. 下载Connector / J并将其添加到您的类路径中(如果您使用的是IDE,则将其添加.jar到库中,或者YouTube上有很多tut )。
  2. 在MySQL程序中创建数据库。
  3. 请参见下面为我提供的示例,下面的示例演示了如何在MySQL上连接和执行查询:

    import java.sql.*;
    

    public class MySqlConnection {
    private String MYSQL_DRIVER = “com.mysql.jdbc.Driver”;
    private String MYSQL_URL = “jdbc:mysql://localhost:3306/test”;

    private Connection con;
    private Statement st;
    private ResultSet rs;

    public MySqlConnection() {

    try {
      Class.forName(MYSQL_DRIVER);
      System.out.println("Class Loaded....");
      con = DriverManager.getConnection(MYSQL_URL,"","");
      System.out.println("Connected to the database....");
      st = con.createStatement();
      int c =st.executeUpdate("CREATE TABLE Accounts (Name VARCHAR(30))");
      System.out.println("Table have been created.");
      System.out.println(c+" Row(s) have been affected");
      con.close();
    
    } catch(ClassNotFoundException ex) {
       System.out.println("ClassNotFoundException:\n"+ex.toString());
       ex.printStackTrace();
    
    } catch(SQLException ex) {
        System.out.println("SQLException:\n"+ex.toString());
        ex.printStackTrace();
    }
    

    }

    public static void main(String…args) {
    new MySqlConnection();
    }
    }



 类似资料:
  • 问题内容: 我试图连接到我的数据库,当我运行代码时,出现错误。谁能告诉我我的PHP代码有什么错误和错误吗?谢谢。 PHP代码: .conf.php 文件: 问题答案: 除非您输入的密码不正确并且需要解决,否则运行一条语句来授予对数据库用户的访问权限: 以上授予所有特权。通常最好只限制需要的内容。例如,如果您仅打算选择而不是修改数据, 更新资料 由于您将数据库名称标识为,因此将调用更改为: 之后,由

  • 命令用于选择数据库,如果想在一个数据库上工作,比如:创建表,查询表,更新,创建存储过程等等,那么首先需要选择一个目标数据库。 示例 假设在MariaDB数据库服务器中,存在有多个数据库,我们必须选择一个特定的数据库。 例如,在下图中显示了多个数据库: 这里我们将使用数据库来创建表等。所以需要使用以下命令。 在执行上面查询语句后,就已经选择数据库。之后就可以在里面创建表等数据对象了。执行上面查询语句

  • 上一章节我们讲了如何创建数据库,接下来我们来讨论如何去选择我们创建的数据库。 数据库的命令窗口 PostgreSQL 命令窗口中,我们可以命令提示符后面输入 SQL 语句: 使用 \l 用于查看已经存在的数据库: 接下来我们可以使用 \c + 数据库名 来进入数据库: 系统命令行窗口 在系统的命令行查看,我么可以在连接数据库后面添加数据库名来选择数据库: pgAdmin 工具 pgAdmin 工具

  • 在MySQL 中就有很多系统自带的数据库,那么在操作数据库之前就必须要确定是哪一个数据库。 在 MySQL 中, USE 语句用来完成一个数据库到另一个数据库的跳转。 当用 CREATE DATABASE 语句创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定当前数据库。其语法格式为: 该语句可以通知 MySQL 把 所指示的数据库作为当前数据库。该数据库保持为默认数据库,直到

  • 问题内容: 我在通过localhost上的PHP脚本选择数据库时遇到麻烦。 我100%确定数据库名称拼写正确,并且实际上它很好地出现在phpmyAdmin上,并且仅当我尝试通过在本地主机上运行PHP脚本尝试连接到它时,它才会显示以下错误: 我的PHP代码在这里: 我已经阅读了成千上万个论坛,并且我将尽一切努力。但是不知道这里出了什么问题吗? 一件有趣的事情是,如果我在PHP脚本中将数据库名称更改为

  • 本章提供了有关如何使用JDBC应用程序选择数据库的示例。 在执行以下示例之前,请确保您具备以下示例 - 要执行以下示例,您需要将username和password替换为您的实际用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the packages:要求包含包含数