Есть ли драйвер JDBC 4.1 для DB2?

Поддерживает ли DB2 (LUW) JDBC 4.1?

Откуда я могу скачать этот драйвер, если он существует?


person M. A. Kishawy    schedule 13.05.2014    source источник


Ответы (2)


Драйвер db2 для JDBC v3 называется db2jcc.jar.

Для версии 4 драйвер JDBC для DB2 называется db2jcc4.jar, и в документации сказано: JDBC 4.0 или более поздние функции.

Ваш вопрос специфичен для JDBC 4.1, однако в документации DB2 ничего не говорится об этом конкретном выпуске JDBC (RowSetProviderClass и автоматическое закрытие соединения, заявление о наборе результатов)

Похоже, что этот драйвер jdbc не доступен для этой версии jdbc.

http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.apdv.java.doc/src/tpc/imjcc_cjvintro.html

Список драйверов db2 jdbc: http://www-01.ibm.com/support/docview.wss?uid=swg21363866

person AngocA    schedule 13.05.2014

В качестве дополнительного ответа на то, что @AngocA упомянул выше, я разработал простую программу для тестирования драйвера DB2, чтобы проверить его уровень соответствия JDBC. Я обнаружил, что первым драйвером DB2, заявившим о такой поддержке, является драйвер 4.13.127.

Поэтому все, что после этого, также должно поддерживать JDBC 4.1

Вот моя простая программа, которую вы можете использовать для проверки уровня соответствия:

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;

public class tester {
    // Replace these info with your DB2 info
    private final static String hostName = "mydb2.db2.com";
    private final static String portNum = "50000";
    private final static String userName = "dasusr";
    private final static String password = "db2sdin";
    private final static String dbName = "mydb";

    private final static String fullURL = "jdbc:db2://" + hostName + ":" + portNum
                                          + "/" + dbName + ":" + "user=" + userName
                                          + ";password=" + password + ";";

    public static void main(String[] args) {
        Connection con = null;
        try {
            con = DriverManager.getConnection(fullURL);
            DatabaseMetaData conMD = con.getMetaData();    
            String driverName = conMD.getDriverName();
            String driverVersion = conMD.getDriverVersion();
            String jdbcVersion = conMD.getJDBCMajorVersion()
                                 +"."+ conMD.getJDBCMinorVersion();
            System.out.println("driverName: " + driverName + "\n"
                                +"driverVersion: "+ driverVersion + "\n"
                                +"jdbcVersion: "+ jdbcVersion);
        } catch (SQLException e) {
            e.printStackTrace();
        } 
    }
}

В вашем .classpath это будет выглядеть так на вкладке Navigator в eclipse:

введите здесь описание изображения

добавьте местоположение драйвера, который вы хотите протестировать, следующим образом:

<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse
                          .jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

    <!-- driver_4.13.127  -->
    <classpathentry kind="lib" path="driver_4.13.127/db2jcc_license_cisuz.jar"/>
    <classpathentry kind="lib" path="driver_4.13.127/db2jcc4.jar"/>

    <classpathentry kind="output" path="bin"/>
</classpath>

Затем вы должны получить вывод, подобный этому:

driverName: IBM Data Server Driver for JDBC and SQLJ
driverVersion: 4.13.127
jdbcVersion: 4.1
person Marko    schedule 23.02.2016