通过Windows ODBC数据源管理器下设置的系统DSN建立ODBC连接?

时间:2011-10-26 03:24:33

标签: java

我正在尝试通过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)

1 个答案:

答案 0 :(得分:0)

如果确实需要这样做,请获取JDBC-ODBC桥并根据特定桥驱动程序的文档选择适合的JDBC URL。太久made one一会儿,但我不知道它是否得到了支持。

如果这样做,您不需要ODBC中的驱动程序特定详细信息,只需直接使用指定的数据源。

但我强烈建议你不要这样做。获取所需数据库的真实JDBC驱动程序,并为程序提供一些获取相关JDBC连接详细信息的方法,并将ODBC排除在外。