- Подключение Connection
- Открытие соединения, getConnection
- Подключение к СУБД Oracle, jdbc oracle
- Подключение к СУБД MS SQL, jdbc sql
- Подключение к СУБД PostgreSQL, jdbc postgresql
- Примеры jdbc postgresql :
- Подключение к СУБД MySQL, jdbc mysql
- Шаг 3. Подтверждение концепции: подключение к SQL с помощью Java
- Шаг 1. Подключение
- Шаг 2. Выполнение запроса
- Шаг 3. Вставка строки
- Java class java sql connection
- Uses of Connection in java.sql
- Uses of Connection in javax.sql
- Uses of Connection in javax.sql.rowset
Подключение Connection
Для соединения с БД необходимо использовать класс Connection пакета java.sql. После установления соединения можно выполнять различные SQL-запросы и получать результаты их обработки сервером. Приложение может открыть одно или несколько соединений с одной или несколькими различными СУБД.
Открытие соединения, getConnection
Стандартный способ установления соединения — это вызов метода getConnection класса DriverManager. Методу getConnection необходимо передать строку URL (Uniform Resource Locator). Стандарт подключения к серверу базы данных позволяет использовать следующие методы getConnection с параметрами:
getConnection(url); getConnection(url, properties); getConnection(url, username, password);
При использовании первого варианта, все параметры подключения указываются в url.
В следующей таблице представлен JDBC driver и синтаксис строки URL для подключения к СУБД.
СУБД | Драйвер JDBC | URL |
---|---|---|
Oracle | oracle.jdbc.OracleDriver | jdbc:oracle:oci[OCI_VERSION]:@[HOST_NAME] |
Oracle | oracle.jdbc.OracleDriver | jdbc:oracle:thin:@ [HOST_NAME]:[PORT_NUMBER]:[DATABASE_NAME] |
MSSQL | com.microsoft.jdbc.sqlserver.SQLServerDriver | jdbc:microsoft:sqlserver: //[HOST_NAME]:[PORT_NUMBER] |
PostgreSQL | org.postgresql.Driver | jdbc:postgresql: //[HOST_NAME]:[PORT_NUMBER] /[DATABASE_NAME] |
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://[HOST_NAME]:[PORT_NUMBER] /[DATABASE_NAME] |
Подключение к СУБД Oracle, jdbc oracle
К серверу БД Oracle можно подключиться как через тонкий клиент, так и через толстый.
Пример подключения через тонкий клиент:
String host = "localhost"; int port = 1521 ; String sid = "SE" ; String user = "SCOTT" ; String pwd = "TIGER" ; try < Class.forName("oracle.jdbc.driver.OracleDriver"); >catch (ClassNotFoundException e) < System.out.println("Oracle JDBC Driver is not found"); e.printStackTrace(); exit (-1); >String url = String.format("jdbc:oracle:thin:@%s:%d:%s", host, port, sid); Connection connection = null; try < connection = DriverManager.getConnection(url, user, pwd); >catch (SQLException e) < System.out.println("Connection Failed : " + e.getMessage()); exit (-1); >if (connection != null) < System.out.println("You made it, take control your database now!"); >else < System.out.println("Failed to make connection!"); >connection.close();
При подключении через толстый клиент, host и port не указываются :
String sid = "SE" ; String user = "SCOTT" ; String pwd = "TIGER" ; . String url = String.format("jdbc:oracle:oci8:@%s", sid); Connection connection = null; try < connection = DriverManager.getConnection(url, user, pwd); >catch (SQLException e) < System.out.println("Connection Failed : " + e.getMessage()); >.
Подключение к СУБД MS SQL, jdbc sql
Строка URL-адреса подключения имеет следующий вид:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
- jdbc:sqlserver:// — обязательно, подпротокол.
- serverName — необязательно, адресом сервера, с которым выполняется соединение. Это может быть DNS, IP-адрес, локальный узел или 127.0.0.1 локального компьютера. Имя сервера необходимо указать в коллекции свойств, если оно не указано в URL-адресе соединения.
- instanceName — необязательно, наименование базы данных сервера, с которым выполняется соединение. Подключение выполняется к базе данных по умолчанию, если не указана другая.
- portNumber — необязательно, порт, который слушает сервер. Значение по умолчанию — 1433. Если соединение выполняется с портом по умолчанию, то в URL-адресе необязательно указывать порт.
Дополнительные свойства указывается в формате ключ=значение.
Примеры установления соединения с сервером БД
// Подключение к БД по умолчанию на localhost: jdbc:sqlserver://localhost;user=userName;password=*****; // Подключение к БД по умолчанию наlocalhost со встроенной проверкой безопасности: jdbc:sqlserver://localhost;integratedSecurity=true; // Подключение к именованной БД: jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true; // Подключение к именованной БД с использованием порта по умолчанию: jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;integratedSecurity=true; // Подключение к именованной БД с указанием настраиваемого имени приложения: jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;applicationName=MyApp;
Подключение к СУБД PostgreSQL, jdbc postgresql
Для подключения к серверу БД PostgreSQL необходимо использовать один из следующих URL:
jdbc:postgresql:database jdbc:postgresql://host/database jdbc:postgresql://host:port/database jdbc:postgresql://host:port
host — имя сервера, по умолчанию «localhost».
port — порт, который слушает сервер. По умолчанию используется порт 5432.
database — наименование базы данных. По умолчанию используется база данных postgres.
Примеры jdbc postgresql :
String url1 = "jdbc:postgresql://localhost/test?user=postgres&password=secret&ssl=true"; String url2 = "jdbc:postgresql://localhost/test"; String user = "postgres"; String pwd = "secret"; Properties props = new Properties (); props.setProperty("user" , user ); props.setProperty("password", pwd ); props.setProperty("ssl" ,"true"); Connection connection1 = DriverManager.getConnection(url1); Connection connection2 = DriverManager.getConnection(url2, props); Connection connection3 = DriverManager.getConnection(url2, user, pwd);
Подключение к СУБД MySQL, jdbc mysql
String driver = «com.mysql.jdbc.Driver»; String url = «jdbc:mysql://localhost:3306/»; String dbName = «. «; String userName = «. «; String password = «. «; try < Class.forName(driver).newInstance(); Connection conn = DriverManager.getConnection(url + dbName, userName, password); if (conn != null) System.out.println ("Приложение подключилось к БД !"); else System.out.println ("Приложение НЕ подключилось к БД ?"); conn.close(); >catch (Exception e)
Пример динамической загрузки JDBC-драйвера и подключение к серверу рассмотрен здесь.
Шаг 3. Подтверждение концепции: подключение к SQL с помощью Java
Этот пример следует рассматривать только как подтверждение концепции. Пример кода упрощен для ясности и для него не гарантируется соблюдение рекомендаций корпорации Майкрософт.
Шаг 1. Подключение
Используйте класс подключения для подключения к базе данных SQL.
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SQLDatabaseConnection < // Connect to your database. // Replace server name, username, and password with your credentials public static void main(String[] args) < String connectionUrl = "jdbc:sqlserver://yourserver.database.windows.net:1433;" + "database=AdventureWorks;" + "user=yourusername@yourserver;" + "password=yourpassword;" + "encrypt=true;" + "trustServerCertificate=false;" + "loginTimeout=30;"; try (Connection connection = DriverManager.getConnection(connectionUrl);) < // Code here. >// Handle any errors that may have occurred. catch (SQLException e) < e.printStackTrace(); >> >
Шаг 2. Выполнение запроса
В этом примере следует подключиться к базе данных SQL Azure, выполнить инструкцию SELECT и вернуть выбранные строки.
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SQLDatabaseConnection < // Connect to your database. // Replace server name, username, and password with your credentials public static void main(String[] args) < String connectionUrl = "jdbc:sqlserver://yourserver.database.windows.net:1433;" + "database=AdventureWorks;" + "user=yourusername@yourserver;" + "password=yourpassword;" + "encrypt=true;" + "trustServerCertificate=false;" + "loginTimeout=30;"; ResultSet resultSet = null; try (Connection connection = DriverManager.getConnection(connectionUrl); Statement statement = connection.createStatement();) < // Create and execute a SELECT SQL statement. String selectSql = "SELECT TOP 10 Title, FirstName, LastName from SalesLT.Customer"; resultSet = statement.executeQuery(selectSql); // Print results from select statement while (resultSet.next()) < System.out.println(resultSet.getString(2) + " " + resultSet.getString(3)); >> catch (SQLException e) < e.printStackTrace(); >> >
Шаг 3. Вставка строки
В этом примере следует выполнить инструкцию INSERT, передать параметры и извлечь автоматически созданное значение первичного ключа.
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class SQLDatabaseConnection < // Connect to your database. // Replace server name, username, and password with your credentials public static void main(String[] args) < String connectionUrl = "jdbc:sqlserver://yourserver.database.windows.net:1433;" + "database=AdventureWorks;" + "user=yourusername@yourserver;" + "password=yourpassword;" + "encrypt=true;" + "trustServerCertificate=false;" + "loginTimeout=30;"; String insertSql = "INSERT INTO SalesLT.Product (Name, ProductNumber, Color, StandardCost, ListPrice, SellStartDate) VALUES " + "('NewBike', 'BikeNew', 'Blue', 50, 120, '2016-01-01');"; ResultSet resultSet = null; try (Connection connection = DriverManager.getConnection(connectionUrl); PreparedStatement prepsInsertProduct = connection.prepareStatement(insertSql, Statement.RETURN_GENERATED_KEYS);) < prepsInsertProduct.execute(); // Retrieve the generated key from the insert. resultSet = prepsInsertProduct.getGeneratedKeys(); // Print the ID of the inserted row. while (resultSet.next()) < System.out.println("Generated: " + resultSet.getString(1)); >> // Handle any errors that may have occurred. catch (Exception e) < e.printStackTrace(); >> >
Java class java sql connection
Provides the API for accessing and processing data stored in a data source (usually a relational database) using the Java™ programming language.
Provides the API for server side data source access and processing from the Java™ programming language.
Uses of Connection in java.sql
Uses of Connection in javax.sql
Creates and returns a Connection object that is a handle for the physical connection that this PooledConnection object represents.
Uses of Connection in javax.sql.rowset
Propagates all row update, insert and delete changes to the data source backing this CachedRowSet object using the specified Connection object to establish a connection to the data source.
Populates this CachedRowSet object with data, using the given connection to produce the result set from which the data will be read.
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2023, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.