betacode

Библиотеки Java JDBC Driver для различных типов баз данных

  1. Введение
  2. JDBC драйвер для Oracle
  3. JDBC драйвер для базы данных  MySQL
  4. JDBC драйвер для Database SQL Server (JTDS)
  5. JDBC драйвер для SQL Server (SQLJDBC)
  6. JDBC драйвер для MongoDB

1. Введение

В этой статье я вам покажу как скачать библиотеку управляющую определенную базу данных, здесь я инструктирую на разных видах баз данных:
  • Oracle
  • MySQL
  • SQL Server.

2. JDBC драйвер для Oracle

Библиотека управления базы данных Oracle обычно называется ojdbc14.jar, ojdbc6.jar, ... Разница заключается в том, какой версией Java она была компилирована. Например:
  • ojdbc14.jar: скомпилирован и упакован Java-версией 1.4
  • ojdbc6.jar: скомпилирован и упакован Java-версией 1.6
  • Более подробную информацию вы можете посмотреть и загрузитьть на веб-сайте Oracle:
Вы можете скачать файл ojdbc6.jar, он может управлять базу данных Oracle разных версий (XE, 10g, 11g, 12). Но почти все текущие Java-приложения используют Java версии 6 или новее.

Для скачивания на веб-сайте Oracle вы должны иметь аккаунт Oracle (Бесплатная регистрация).
Для экономии времени вы можете скачать по следующей ссылке:
Результаты скачивания:
Maven для Oracle JDBC Driver
<repositories>
       <!-- Repository for ORACLE ojdbc6. -->
       <repository>
           <id>codelds</id>
           <url>https://code.lds.org/nexus/content/groups/main-repo</url>
       </repository>
   </repositories>

    .......

   <dependencies>

       ......

       <!-- Oracle database driver -->
       <dependency>
           <groupId>com.oracle</groupId>
           <artifactId>ojdbc6</artifactId>
           <version>11.2.0.3</version>
       </dependency>

       .......

   </dependencies>
Способ использования (ojdbc)
// Driver class:
oracle.jdbc.driver.OracleDriver

// URL Connection String: (SID)
String urlString ="jdbc:oracle:thin:@myhost:1521:mysid"


// URL Connection String:  (Service Name)
String urlString ="jdbc:oracle:thin:username/pass@//myhost:1521/myservicename"

// Or:
String urlString ="jdbc:oracle:thin:@myhost:1521/myservicename";
Пример соединения JDBC с базой данных Oracle.
OracleConnUtils.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class OracleConnUtils {

   public static Connection getOracleConnection()
           throws ClassNotFoundException, SQLException {
       String hostName = "localhost";
       String sid = "db11g";
       String userName = "learningsql";
       String password = "1234";

       return getOracleConnection(hostName, sid, userName, password);
   }

   public static Connection getOracleConnection(String hostName, String sid,
           String userName, String password) throws ClassNotFoundException,
           SQLException {

      // Declare the class Driver for Oracle DB
      // This is necessary with Java 5 (or older)
      // Java6 (or newer) automatically find the appropriate driver.
      // If you use Java> 6, then this line is not needed.
       Class.forName("oracle.jdbc.driver.OracleDriver");

       // Example: jdbc:oracle:thin:@localhost:1521:db11g
       String connectionURL = "jdbc:oracle:thin:@" + hostName + ":1521:" + sid;

       Connection conn = DriverManager.getConnection(connectionURL, userName,
               password);
       return conn;
   }
}

3. JDBC драйвер для базы данных  MySQL

Вы можете загрузить библиотеку JDBC для базы данных MySQL по ссылке:
Результат скачивания:
Способ использования
Способ использования: (MySQL)
// Driver class:
com.mysql.jdbc.Driver

// URL Connection String:
String url = "jdbc:mysql://hostname:3306/dbname";


// Example:
String url = "jdbc:mysql://localhost:3306/simplehr";
Пример использования JDBC для подключения к базе данных MySQL
MySQLConnUtils.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySQLConnUtils {

  public static Connection getMySQLConnection()
          throws ClassNotFoundException, SQLException {
      String hostName = "localhost";
      String dbName = "learningsql";
      String userName = "root";
      String password = "12345";
      return getMySQLConnection(hostName, dbName, userName, password);
  }

  public static Connection getMySQLConnection(String hostName, String dbName,
          String userName, String password) throws SQLException,
          ClassNotFoundException {
     // Declare the class Driver for Oracle DB
     // This is necessary with Java 5 (or older)
     // Java6 (or newer) automatically find the appropriate driver.
     // If you use Java> 5, then this line is not needed.
      Class.forName("com.mysql.jdbc.Driver");


      // Ví dụ: jdbc:mysql://localhost:3306/simplehr
      String connectionURL = "jdbc:mysql://" + hostName + ":3306/" + dbName;

      Connection conn = DriverManager.getConnection(connectionURL, userName,
              password);
      return conn;
  }
}
Некоторые трудности и способ исправления
В некоторых случаях возникает ошибка с подключением Java или другого компьютера с MySQL. Причиной может быть, возможно, не конфигурировали сервер MySQL, чтобы разрешить подключения с других компьютеров.
Вы можете просмотреть раздел конфигурации в статье "Установка и настройка MySQL Community".

4. JDBC драйвер для Database SQL Server (JTDS)

JTDS - это другая библиотека JDBC, управляющая базой данных SQLServer, это библиотека с открытым исходным кодом.
JTDS является открытым исходным кодом на 100% чисто Java (тип 4)JDBC 3.0 для Microsoft SQL Server (6.5, 7, 2000, 2005, 2008, 2012) и Sybase ASE (10, 11, 12, 15). JTDS основан на FreeTDS и в настоящее время является самым быстрым готовым JDBC-драйвером для SQL Server и Sybase. JTDS - это 100% совместимый с JDBC 3.0, поддерживающий только передовые и прокручиваемые/обновляемые ResultSets и реализующие все методы DatabaseMetaData и ResultSetMetaData.
Вы можете скачать все версии по ссылке:
Результат скачивания:
Способ использования (jtds)
Способ использования: (SQL Server)
// Driver Class
net.sourceforge.jtds.jdbc.Driver

// Connection URL String:
jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

// Example 1:
String url = "jdbc:jtds:sqlserver://MYPC:1433/simplehr;instance=SQLEXPRESS;user=sa;password=s3cr3t";

getConnection(url);

// Example 2:
String url = "jdbc:jtds:sqlserver://MYPC:1433/simplehr;instance=SQLEXPRESS";

getConnection(url, "sa", "s3cr3t"):
Пример, использования JDBC для подключения к базе данных Database SQLServer используя библиотеку JTDS.
SQLServerConnUtils_JTDS.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class SQLServerConnUtils_JTDS {

 // Connect to SQLServer.
 // (Using JTDS library)
 public static Connection getSQLServerConnection_JTDS() throws SQLException,
         ClassNotFoundException {
     String hostName = "localhost";
     String sqlInstanceName = "SQLEXPRESS";
     String database = "simplehr";
     String userName = "sa";
     String password = "12345";

     return getSQLServerConnection_JTDS(hostName, sqlInstanceName, database,
             userName, password);
 }


 // JTDS & SQLServer.
 private static Connection getSQLServerConnection_JTDS(String hostName,
         String sqlInstanceName, String database, String userName,
         String password) throws ClassNotFoundException, SQLException {

    // Declare the class Driver for Oracle DB
    // This is necessary with Java 5 (or older)
    // Java6 (or newer) automatically find the appropriate driver.
    // If you use Java> 5, then this line is not needed.
     Class.forName("net.sourceforge.jtds.jdbc.Driver");

      // Example:
     // jdbc:jtds:sqlserver://localhost:1433/simplehr;instance=SQLEXPRESS
     String connectionURL = "jdbc:jtds:sqlserver://" + hostName + ":1433/"
             + database + ";instance=" + sqlInstanceName;

     Connection conn = DriverManager.getConnection(connectionURL, userName,
             password);
     return conn;
 }

}
Некоторые трудности и способы исправления
В некоторых ситуациях мы подключаемся к SQLServer, и происходит ошибка:
Exception in thread "main" java.sql.SQLException: Server tran-vmware has no instance named SQLEXPRESS.
   at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:301)
   at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
   at java.sql.DriverManager.getConnection(DriverManager.java:571)
   at java.sql.DriverManager.getConnection(DriverManager.java:215)
   at org.o7planning.tutorial.jdbc.ConnectionUtils.getSQLServerConnection_JTDS(ConnectionUtils.java:189)
   at org.o7planning.tutorial.jdbc.ConnectionUtils.getSQLServerConnection_JTDS(ConnectionUtils.java:72)
   at org.o7planning.tutorial.jdbc.ConnectionUtils.getMyConnection(ConnectionUtils.java:31)
   at org.o7planning.tutorial.jdbc.TestConnection.main(TestConnection.java:20)
Вышеупомянутая ошибка существует, может потому что вы не включаете сервис TCP/IP SQL Server. Вы можете ссылаться на раздел конфигурации в статье: "Руководство по установке и конфигурации SQLServerExpress ..." по ссылке:

5. JDBC драйвер для SQL Server (SQLJDBC)

Библиотека SQLJDBC предоставляется корпорацией Microsoft.
Download:
Извлечь скачанный файл:
В результате получена библиотека:
Способ использования (sqljdbc)
// Driver Class:
com.microsoft.sqlserver.jdbc.SQLServerDriver

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

// Url String:
String url = "jdbc:sqlserver://ServerIp;Instance=SQLEXPRESS;databaseName=simplehr";

// or
String url = "jdbc:sqlserver://ServerIp:1433;Instance=SQLEXPRESS;databaseName=simplehr";

String user = "dbUserID";
String pass = "dbUserPassword";

Connection connection = DriverManager.getConnection(url, user, pass);
Пример использования JDBC для подключения к базе данных MySQL используя библиотеку SQLJDBC.
SQLServerConnUtils_SQLJDBC.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class SQLServerConnUtils_SQLJDBC {
 
  // Connect to SQLServer.
  // (Using SQLJDBC)
  public static Connection getSQLServerConnection_SQLJDBC()
          throws ClassNotFoundException, SQLException {
      String hostName = "localhost";
      String sqlInstanceName = "SQLEXPRESS";
      String database = "learningsql";
      String userName = "sa";
      String password = "12345";

      return getSQLServerConnection_SQLJDBC(hostName, sqlInstanceName,
              database, userName, password);
  }



  // SQLServer & SQLJDBC.
  private static Connection getSQLServerConnection_SQLJDBC(String hostName,
          String sqlInstanceName, String database, String userName,
          String password) throws ClassNotFoundException, SQLException {
     // Declare the class Driver for Oracle DB
     // This is necessary with Java 5 (or older)
     // Java6 (or newer) automatically find the appropriate driver.
     // If you use Java> 5, then this line is not needed.
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");


      // Example:
      // jdbc:sqlserver://ServerIp:1433/SQLEXPRESS;databaseName=simplehr
      String connectionURL = "jdbc:sqlserver://" + hostName + ":1433"
              + ";instance=" + sqlInstanceName + ";databaseName=" + database;

      Connection conn = DriverManager.getConnection(connectionURL, userName,
              password);
      return conn;
  }

}
Некоторые трудности и способы исправления
В некоторых ситуациях мы подключаемся к SQLServer, и происходит ошибка:
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
  at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
  at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
  at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
  at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
  at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
  at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
  at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
  at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
  at java.sql.DriverManager.getConnection(Unknown Source)
  at java.sql.DriverManager.getConnection(Unknown Source)
  ...
Вышеупомянутая ошибка существует, возможно потому что вы не включили сервис TCP/IP SQL Server. Вы можете ссылаться на раздел конфигурации SQLServer в статье: "Руководство по установке и конфигурации SQLServer Express ..." по ссылке:
Если и все ещё есть ошибки:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host tran-vmware, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
 at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
 at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
 at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
 at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
 at java.sql.DriverManager.getConnection(DriverManager.java:571)
 at java.sql.DriverManager.getConnection(DriverManager.java:215)
 ...
Это неприятная ошибка, так как если перейти на использовние библиотеки JTDS, она не возникает.
  • TODO
  • You should use JTDS

6. JDBC драйвер для MongoDB

Вы можете скачать драйвер JDBC для MongoDB по ссылке:
Вы так же можете скачать в Maven Repository:

Java Basic

Show More