小编sep*_*er3的帖子

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);
             }   
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我执行它时,它说:

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

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

    stmt.executeUpdate("use test;");
Run Code Online (Sandbox Code Playgroud)

创建Statement后.

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

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

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

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

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

     stmt.executeUpdate("CREATE DATABASE test;");
Run Code Online (Sandbox Code Playgroud)

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

java mysql odbc jdbc sqlexception

8
推荐指数
2
解决办法
3万
查看次数

标签 统计

java ×1

jdbc ×1

mysql ×1

odbc ×1

sqlexception ×1