java.sql.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);

}

}

}

当我执行它时,它说:

驱动程序已加载…

连接成功…

数据库-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();

    }

    }

以上是 java.sql.SQLException:未选择数据库-为什么? 的全部内容, 来源链接: utcz.com/qa/417815.html

回到顶部