我正在尝试通过Windows ODBC Manager在Java中建立ODBC连接。我已经设法读取注册表以获取系统DSN的列表,一旦用户做出选择,我就读取与所选SystemDSN关联的注册表中的“HostMachine”参数,并从那里我想建立ODBC连接。我尝试过DriverManager getConnection方法,但它似乎不起作用!任何想法PLZ ??!
请注意,我想通过相关的IP地址和不太可能的网址访问服务器,因此(HostMachine)!
这些系统DSN中的每一个都与需要用于连接其相关数据源的驱动程序相关联!
private static Connection getConnection(String address, String username, String password) throws Exception {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:" + address;
Class.forName(driver);
return DriverManager.getConnection(url, username, password);
}
我收到以下异常!
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
谢谢Dan,我按照你的说法做了,但现在我得到了这个例外,你觉得怎么样?!
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
这是完整的堆栈跟踪!有什么想法吗??!
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
答案 0 :(得分:0)
如果确实需要这样做,请获取JDBC-ODBC桥并根据特定桥驱动程序的文档选择适合的JDBC URL。太久made one一会儿,但我不知道它是否得到了支持。
如果这样做,您不需要ODBC中的驱动程序特定详细信息,只需直接使用指定的数据源。
但我强烈建议你不要这样做。获取所需数据库的真实JDBC驱动程序,并为程序提供一些获取相关JDBC连接详细信息的方法,并将ODBC排除在外。