java tutorial - Руководство Java JDBC - учебник java - java programming - учиться java - java basics - java for beginners
java - джава - учиться java - учебник java -
java jdbc
- примеры java - java-программы
Database использующийся в данной статье
- В этом документе вы узнаете, как использовать Java для соединения с базой данных.
- Модель базы данных, используемая в этом документе - "simplehr". Вы можете просмотретьсценарии создания базы данных по ссылке:
Что такое JDBC?
- Java Database Connectivity (JDBC) - это стандартный API для взаимодействия с реляционными базами данных. JDBC имеет набор классов и интерфейсов, которые могут использоваться для Java-приложения и разговаривать с базой данных,.
java - джава - учиться java - учебник java -
jdbc
- примеры java - java-программы
Основные компоненты JDBC Api включают:
DriverManager:
- Это класс, использующийся для управления списком Driver (database drivers).
Driver:
- Это интерфейс, использующийся для соединения коммуникации с базой данных, управления коммуникации с базой данных. Когда загружается Driver, программисту не нужно конкретно вызывать его.
Connection :
- Интерфейс со всеми методами связи с базой данных. Он описывает коммуникационный контекст. Вся связь с базой данных осуществляется только через объект соединения (connection).
Statement :
- Это интерфейс, включающий команду SQL отправленный в базу данных для анализа, обобщения, планирования и выполнения.
ResultSet :
- ResultSet представляет набор записей, извлеченных из-за выполнения запроса.
На каком принципе подключается Java к базе данных?
- Java с использует JDBC для работы с базой данных.
java - джава - учиться java - учебник java -
java приложение
- примеры java - java-программы
- Например, при работе с Oracle Database из Java вам необходимо иметь Driver (это класс, управляющий соединением с видами баз данных, которые вы хотите). В JDBC API у нас есть java.sql.Driver, это только интерфейс, и он доступен в JDK. Таким образом, вы должны загрузить библиотеку Driver, совместимую с видом необходимой вам базы данных.
- Например, с Oracle, класс реализующий интерфейс java.sql.Driver является oracle.jdbc.driver.OracleDriver
- java.sql.DriverManager - это класс в JDBC API. Он отвечает за управление драйверами (Driver).
- Посмотрите на иллюстрацию ниже:
- У нас есть два способа работы с определенной базой данных.
- Способ 1: вы предоставляете Driver управляющий этим видом базы данных, это прямой способ. Если вы используете DB oracle (или другой DB), вам нужно будет загрузить конкретную библиотеку JDBC этой BD.
- Способ 2: объявите "ODBC Datasource" и используйте мост JDBC-ODBC для соединения с этим "ODBC Datasource". Мост JDBC-ODBC доступен в JDBC API.
- Вопрос для нас в том, что такое " ODBC DataSource"?
- ODBC - Open Database Connectivity: Это набор открытых библиотек, которые могут подключаться практически ко всем видам различных баз данных, и это бесплатно. Предоставляется Microsoft.
- ODBC DataSource: в операционной системе Windows вы можете объявить соединение ODBC с определенным видом BD. В результате у нас есть источник данных (Data Source).
- В JDBC API, JDBC-ODBC Bridge (мост) был настроен так, что JDBC может работать с ODBC Data Source.
- Что касается скорости, первый способ быстрее, чем второй, потому что второй должен использовать мост.
Скачать некоторые важные драйверы (Driver)
- Если вы не хотите использовать JDBC-ODBC, вы можете напрямую подключиться к базе данных. В этом случае вам необходимо загрузить драйвер, соответствующий с каждым видом базы данных. Здесь я покажу вам как скачать один вид драйвера для распространенных баз данных:
- Oracle
- MySQL
- SQLServer
- Вы можете смотреть инструкцию здесь:
- В результате у нас есть несколько файлов:
java - джава - учиться java - учебник java -
java файлов
- примеры java - java-программы
Создать project, чтобы начать пример с JDBC
- Создание нового проекта JavaJdbcTutorial:
java - джава - учиться java - учебник java -
cоздание проекта
- примеры java - java-программы
- Создайте папку libs в проекте, скопируйте библиотеки подключенные напрямую к видам баз данных Oracle, MySQL, SQLServer, которые вы только что загрузили. Вы можете скопировать все или одну из этих библиотек, совместимую с используемым видом базы данных
java - джава - учиться java - учебник java -
cоздание проекта java
- примеры java - java-программы
- Кликните правой кнопкой мыши на проект и выберите Properties:
java - джава - учиться java - учебник java -
свойства java
- примеры java - java-программы
java - джава - учиться java - учебник java -
построить путь к java
- примеры java - java-программы
- Теперь вы готовы работать с одним из баз данных ( Oracle, MySQL, SQL Server)
Connection
- В этой статье я покажу вам как подключиться ко всем трем видам баз данных:
- MySQL
- SQLServer
- Oracle
- На практике вам просто нужно работать с видом базы данных (DB), к которому вы привыкли.
java - джава - учиться java - учебник java -
серверы java
- примеры java - java-программы
- Создаем класс ConnectionUtils для получения Connection чтобы подключиться к базе данных.
java - джава - учиться java - учебник java -
util подключения Java
- примеры java - java-программы
ConnectionUtils.java
package com.wikitechy.tutorial.jdbc;
import java.sql.Connection;
import java.sql.SQLException;
public class ConnectionUtils {
public static Connection getMyConnection() throws SQLException,
ClassNotFoundException {
// Using Oracle
// You may be replaced by other Database.
return OracleConnUtils.getOracleConnection();
}
//
// Test Connection ...
//
public static void main(String[] args) throws SQLException,
ClassNotFoundException {
System.out.println("Get connection ... ");
// Get a Connection object
Connection conn = ConnectionUtils.getMyConnection();
System.out.println("Get connection " + conn);
System.out.println("Done!");
}
}нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - командаOracleConnUtils.java
package org.wikitechy.tutorial.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class OracleConnUtils {
// Connect to Oracle.
public static Connection getOracleConnection() throws SQLException,
ClassNotFoundException {
String hostName = "localhost";
String sid = "db11g";
String userName = "simplehr";
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> 5, then this line is not needed.
Class.forName("oracle.jdbc.driver.OracleDriver");
String connectionURL = "jdbc:oracle:thin:@" + hostName + ":1521:" + sid;
Connection conn = DriverManager.getConnection(connectionURL, userName,
password);
return conn;
}
}нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - командаMySQLConnUtils.java
package com.wikitechy.tutorial.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MySQLConnUtils {
// Connect to MySQL
public static Connection getMySQLConnection() throws SQLException,
ClassNotFoundException {
String hostName = "localhost";
String dbName = "simplehr";
String userName = "root";
String password = "1234";
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 MySQL 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");
String connectionURL = "jdbc:mysql://" + hostName + ":3306/" + dbName;
Connection conn = DriverManager.getConnection(connectionURL, userName,
password);
return conn;
}
}нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - командаSQLServerConnUtils_JTDS.java
package com.wikitechy.tutorial.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SQLServerConnUtils_JTDS {
// Connect to SQLServer
// (Using JDBC Driver of JTDS library)
public static Connection getSQLServerConnection()
throws SQLException, ClassNotFoundException {
String hostName = "localhost";
String sqlInstanceName = "SQLEXPRESS";
String database = "simplehr";
String userName = "sa";
String password = "1234";
return getSQLServerConnection(hostName, sqlInstanceName, database,
userName, password);
}
// Connect to SQLServer & using JTDS library
public static Connection getSQLServerConnection(String hostName,
String sqlInstanceName, String database, String userName,
String password) throws ClassNotFoundException, SQLException {
// Declare the class Driver for SQLServer 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;
}
}нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - командаSQLServerConnUtils_SQLJDBC.java
package com.wikitechy.tutorial.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SQLServerConnUtils_SQLJDBC {
// Connect to SQLServer
// (Using JDBC Driver: SQLJDBC)
public static Connection getSQLServerConnection()
throws SQLException, ClassNotFoundException {
String hostName = "localhost";
String sqlInstanceName = "SQLEXPRESS";
String database = "simplehr";
String userName = "sa";
String password = "1234";
return getSQLServerConnection(hostName, sqlInstanceName,
database, userName, password);
}
//
// Connect to SQLServer & using SQLJDBC Library.
public static Connection getSQLServerConnection(String hostName,
String sqlInstanceName, String database, String userName,
String password) throws ClassNotFoundException, SQLException {
// Declare the class Driver for SQLServer 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");
// 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;
}
}нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - командаODBCConnUtils.java
package com.wikitechy.tutorial.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ODBCConnUtils {
// Connect to ODBC Data Source named "simplehr-ds".
public static Connection getJdbcOdbcConnection() throws SQLException,
ClassNotFoundException {
String odbcDataSourceName = "simplehr-ds";
String userName = "simplehr";
String password = "simplehr";
return getJdbcOdbcConnection(odbcDataSourceName, userName, password);
}
public static Connection getJdbcOdbcConnection(String odbcDataSourceName,
String userName, String password) throws SQLException,
ClassNotFoundException {
// Declare the class Driver for JDBC-ODBC Bridge
// 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("sun.jdbc.odbc.JdbcOdbcDriver");
String connectionURL = "jdbc:odbc:" + odbcDataSourceName;
Connection conn = DriverManager.getConnection(connectionURL, userName,
password);
return conn;
}
}нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда- Вы можете изменить класс ConnectionUtils для подключения к знакомой базе данных и запустить этот класс для тестирования соединения.