加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java.sql.SQLException:没有选择数据库 – 为什么?

发布时间:2020-12-14 05:45:57 所属栏目:Java 来源:网络整理
导读:我试图学习如何通过 Java访问mySQL数据库的最后几天. 我能够加载驱动程序并获得与数据库的连接(至少我是这么认为的,因为我没有得到例外……) 代码是: import java.sql.*; public class test { public static void main(String[] args) { try { Class.forNam
我试图学习如何通过 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;");

创建Statement后.

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

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

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

PS.如果我忘了指出一些重要的信息(我不认为我这样做)请问:)

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

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

这实际上有效,但数据库也不会被选中……

解决方法

首先,我正在考虑我的答案,向您展示与MySQL数据库连接的另一种更好的方法,它更容易,并且更少nu-expected Exception(s).
你需要做一些步骤:

>下载Connector/J并将其添加到您的类路径中(如果您使用的是IDE,则将.jar添加到库中,或者在YouTube上有很多内容).
>在MySQL程序中创建数据库.
>请参阅下面的示例,我为您演示的示例如何在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();
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读