- Шаг 3. Подтверждение концепции: подключение к SQL с помощью Java
- Шаг 1. Подключение
- Шаг 2. Выполнение запроса
- Шаг 3. Вставка строки
- Подключение Connection
- Открытие соединения, getConnection
- Подключение к СУБД Oracle, jdbc oracle
- Подключение к СУБД MS SQL, jdbc sql
- Подключение к СУБД PostgreSQL, jdbc postgresql
- Примеры jdbc postgresql :
- Подключение к СУБД MySQL, jdbc mysql
Шаг 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(); >> >
Подключение 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-драйвера и подключение к серверу рассмотрен здесь.