Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;找不到数据源名称且没有默认驱动程序“;_Java_Mysql_Odbc - Fatal编程技术网

Java &引用;找不到数据源名称且没有默认驱动程序“;

Java &引用;找不到数据源名称且没有默认驱动程序“;,java,mysql,odbc,Java,Mysql,Odbc,java到mysql的连接代码: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Driver loaded"); con = DriverManager.getConnection(url, "root", "sai"); stmt = con.createStatement(); System.out.println("Conn

java到mysql的连接代码:

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        System.out.println("Driver loaded");
        con = DriverManager.getConnection(url, "root", "sai");
        stmt = con.createStatement();
        System.out.println("Connection established");
执行上述代码后

"Driver loaded" message printed on console but,
after that following exception is printed - 
[Microsoft][ODBC Driver Manager] 
Data source name not found and no default driver specified
我已经为这个项目创建了DSN(MYSQL ODBC 3.51驱动程序)


请告诉我上述问题的解决方案。

我已经做了一段时间了,但您可以尝试向DriverManager类显式注册驱动程序。这意味着您不依赖于在后台隐式发生的一些看不见的事情

DriverManager.registerDriver((Driver) 
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance());
con = DriverManager.getConnection(url, "root", "sai");

这将确保加载“sun.jdbc.odbc.JdbcOdbcDriver”类并将其连接到DriverManager。

如果可能,请不要使用JdbcOdbc驱动程序,而是为数据库使用纯jdbc驱动程序

关于如何注册驱动程序的问题,请参阅javadocs For java.sql的接口驱动程序:

强烈建议每个 驱动程序级别应为小型和小型 使驱动程序类 可以加载和查询,而无需 带来大量的 支持代码

加载驱动程序类时,它 应该创建自身的实例 并在 司机经理。这意味着用户 可以通过以下方式加载和注册驱动程序: 召唤

Class.forName("foo.bah.Driver")
单独调用'newInstance'或registerDriver'是Cargo Cult编程。

“如果可能,请不要使用JdbcOdbc驱动程序,而是为数据库使用纯JDBC驱动程序!”

MySql纯JDBC驱动程序的一个示例是可从下载的MySql-connector-java-5.x.x.jar文件中的com.MySql.JDBC.Driver


关于JDBC和JDBC-ODBC之间的区别,可以在

上找到一个很好的解释。您还没有告诉我们您的url,这使得诊断有点困难……您的标记是“java swing struct”,它与标题
swing组件和struct java编程
,这与文本无关。我也会编辑它。请小心一点。请强调您的问题所在..newInstance不是必需的,
registerDriver
相同。不要隐藏异常:
catch(SQLException e){e.printStackTrace();}
“未找到数据源名称”是错误-可能是URL?我不知道mysql是什么样子。请看我更新的帖子(因为在评论中布局不太好),我引用了javadocs。