MSSQL 2012 64位JDBC连接

时间:2017-08-29 16:15:06

标签: sql-server jdbc odbc 32bit-64bit

我尝试使用JDBC连接尝试连接到SQL Server数据库64位无济于事。我使用在线发现的标准驱动程序(sqljdbc42.jar和mssql-jdbc-6.1.0.jre8.jar),但它们似乎没有用。是否有可能驱动程序是32位并且弄乱了连接。我能够通过Windows( 32和64位连接)创建ODBC连接并使用JdbcOdbc驱动程序进行连接,但是在Java 8上不推荐使用此连接,我无法使用以前的版本。可能是什么问题? JDBC日志只是说它无法建立连接并检查防火墙问题和诸如此类的东西(由于我们能够使用ODBC连接,因此显然不存在)。

请注意,我不是配置SQL Server实例的人,而是我们客户端的数据库管理员,因此我不知道他们可能已经完成的任何特定配置。它是一个由File360应用程序使用的数据库,如果有帮助的话。

下面是我使用的代码(它不应该是相关的,因为它曾经在客户端迁移到新的Windows Server计算机之前工作)

private void initUsingJDBC(Properties configurationProperties) {
    logger.debug("Creating datasource using driver: " + configurationProperties.getProperty("driverName"));
    DriverManagerDataSource frameworkDS = new DriverManagerDataSource(configurationProperties.getProperty("driverName"));

    frameworkDS.setUrl(configurationProperties.getProperty("frameworkDBUrl"));
    frameworkDS.setUsername(configurationProperties.getProperty("frameworkDBUser"));
    frameworkDS.setPassword(configurationProperties.getProperty("frameworkDBPass"));
    logger.info("Setting up framework datasource on url: " + frameworkDS.getUrl());

    frameworkJdbcTemplate = new JdbcTemplate(frameworkDS);

    DriverManagerDataSource dataDS = new DriverManagerDataSource(configurationProperties.getProperty("driverName"));

    dataDS.setUrl(configurationProperties.getProperty("dataDBUrl"));
    dataDS.setUsername(configurationProperties.getProperty("dataDBUser"));
    dataDS.setPassword(configurationProperties.getProperty("dataDBPass"));
    logger.info("Setting up data datasource on url: " + dataDS.getUrl());
    dataJdbcTemplate = new JdbcTemplate(dataDS);
  }

使用以下配置无法连接:

driverName=com.microsoft.sqlserver.jdbc.SQLServerDriver
frameworkDBUrl=jdbc:sqlserver://vm-micro-dbprod\\SQL2012;databaseName=File360_Framework

但是,使用ODBC它成功连接:

private void initUsingODBC(Properties configurationProperties) {
    logger.debug("Creating odbc datasource " + configurationProperties.getProperty("frameworkODBCUrl"));
    DriverManagerDataSource frameworkDS = new DriverManagerDataSource();
    frameworkDS.setDriverClassName("sun.jdbc.odbc.JdbcOdbcDriver");
    frameworkDS.setUrl(configurationProperties.getProperty("frameworkODBCUrl"));
    frameworkDS.setUsername(configurationProperties.getProperty("frameworkDBUser"));
    frameworkDS.setPassword(configurationProperties.getProperty("frameworkDBPass"));
    logger.info("Setting up framework datasource on url: " + frameworkDS.getUrl());

    frameworkJdbcTemplate = new JdbcTemplate(frameworkDS);

    logger.debug("Creating odbc datasource " + configurationProperties.getProperty("dataODBCUrl"));
    DriverManagerDataSource dataDS = new DriverManagerDataSource();
    dataDS.setDriverClassName("sun.jdbc.odbc.JdbcOdbcDriver");
    dataDS.setUrl(configurationProperties.getProperty("dataODBCUrl"));
    dataDS.setUsername(configurationProperties.getProperty("dataDBUser"));
    dataDS.setPassword(configurationProperties.getProperty("dataDBPass"));
    logger.info("Setting up data datasource on url: " + dataDS.getUrl());
    dataJdbcTemplate = new JdbcTemplate(dataDS);
  }

使用Windows 10 ODBC Data Sources(32位和64位工作)定义了ODBC连接。

0 个答案:

没有答案