Библиотеки Java JDBC Driver для различных типов баз данных
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 (Бесплатная регистрация).
Для экономии времени вы можете скачать по следующей ссылке:
Для скачивания на веб-сайте 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
Java Basic
- Настройте java compiler для обработки вашего Annotation (Annotation Processing Tool)
- Программирование на Java для группы с помощью Eclipse и SVN
- Руководство Java WeakReference
- Руководство Java PhantomReference
- Сжатие и декомпрессия в Java
- Настройка Eclipse для использования JDK вместо JRE
- Методы String.format() и printf() в Java
- Синтаксис и новые функции в Java 8
- Регулярные выражения Java
- Руководство Java Multithreading Programming
- Библиотеки Java JDBC Driver для различных типов баз данных
- Руководство Java JDBC
- Получить значения столбцов, автоматически возрастающих при вставлении (Insert) записи, используя JDBC
- Руководство Java Stream
- Руководство Java Functional Interface
- Введение в Raspberry Pi
- Руководство Java Predicate
- Абстрактный класс и Interface в Java
- Модификатор доступа (Access modifiers) в Java
- Руководство Java Enum
- Руководство Java Annotation
- Сравнение и Сортировка в Java
- Руководство Java String, StringBuffer и StringBuilder
- Обработка исключений Java - Java Exception Handling
- Руководство Java Generics
- Манипулирование файлами и каталогами в Java
- Руководство Java BiPredicate
- Руководство Java Consumer
- Руководство Java BiConsumer
- Что мне нужно для начала работы с Java?
- История Java и разница между Oracle JDK и OpenJDK
- Установить Java в Windows
- Установите Java в Ubuntu
- Установите OpenJDK в Ubuntu
- Установить Eclipse
- Установите Eclipse в Ubuntu
- Быстрое изучение Java для начинающих
- История бит и байтов в информатике
- Типы данных в java
- Битовые операции
- Команда if else в Java
- команды switch в Java
- Циклы в Java
- Массивы (Array) в Java
- JDK Javadoc в формате CHM
- Наследование и полиморфизм в Java
- Руководство Java Function
- Руководство Java BiFunction
- Пример Java encoding и decoding с использованием Apache Base64
- Руководство Java Reflection
- Java Удаленный вызов методов - Java RMI
- Руководство Программирование Java Socket
- Какую платформу я должен выбрать для разработки приложений Java Desktop?
- Руководство Java Commons IO
- Руководство Java Commons Email
- Руководство Java Commons Logging
- Понимание Java System.identityHashCode, Object.hashCode и Object.equals
- Руководство Java SoftReference
- Руководство Java Supplier
- Аспектно-ориентированное программирование Java с помощью AspectJ (AOP)
Show More
- Руководства Java Servlet/JSP
- Руководства Java Collections Framework
- Java API для HTML, XML
- Руководства Java IO
- Руководства Java Date Time
- Руководства Spring Boot
- Руководства Maven
- Руководства Gradle
- Руководства Java Web Services
- Руководства Java SWT
- Руководства JavaFX
- Руководства Oracle Java ADF
- Руководства Struts2 Framework
- Руководства Spring Cloud