Java jdbc url connect

Формирование URL-адреса соединения

Обычно URL-адреса соединения выглядят следующим образом:

  • jdbc:sqlserver:// (обязательно) известен как подпротокол и является константой.
  • serverName (необязательно) является адресом сервера, с которым выполняется соединение. Это может быть DNS, IP-адрес, localhost или адрес 127.0.0.1 локального компьютера. Имя сервера необходимо указать в коллекции свойств, если оно не указано в URL-адресе соединения.
  • instanceName (необязательно) является экземпляром, с которым выполняется соединение с serverName. Подключение выполняется к экземпляру по умолчанию, если не указано другое.
  • portNumber (необязательно) является портом, с которым выполняется соединение с serverName. Значение по умолчанию — 1433. Если соединение выполняется с портом по умолчанию, в URL-адресе необязательно указывать порт или символ ‘:’ перед ним.

Примечание Для оптимизации производительности соединения при соединении с именованным экземпляром необходимо указать portNumber. Это позволит избежать дополнительного обращения к серверу для определения номера порта. Если используются portNumber и instanceName, portNumber будет иметь более высокий приоритет, и instanceName будет пропущен.

В целях безопасности не рекомендуется составлять URL-адрес соединения на основе данных пользователей. В URL-адресе необходимо указывать только имя сервера и драйвер. Для указания значений имени пользователя и пароля следует использовать коллекции свойств соединения. Дополнительные сведения о безопасности в приложениях JDBC см. в статье Защита приложений JDBC Driver.

Свойства подключения

Подробный список свойств, которые можно установить в строке подключения, см. в разделе Установка свойств подключения.

Примеры подключений

Подключитесь к базе данных по умолчанию на локальном компьютере с помощью имени пользователя и пароля:

Хотя в предыдущем примере в строке подключения указывались имя пользователя и пароль, следует использовать встроенную безопасность, так как она более надежна. Дополнительные сведения см. в подразделе Соединения с использованием встроенной проверки подлинности далее в этом разделе.

Следующая строка подключения дается в качестве примера выполнения соединения с базой данных SQL Server со встроенной проверкой подлинности и Kerberos из приложения, работающего в любой операционной системе, поддерживаемой Microsoft JDBC Driver для SQL Server:

jdbc:sqlserver://;servername=server_name;encrypt=true;integratedSecurity=true;authenticationScheme=JavaKerberos 

Подключитесь к базе данных по умолчанию на локальном компьютере с помощью встроенной проверки подлинности:

Подключитесь к именованной базе данных на удаленном сервере:

Подключитесь к удаленному серверу с использованием порта по умолчанию:

Подключитесь, указав настраиваемое имя приложения:

Именованные и множественные экземпляры SQL Server

SQL Server обеспечивает возможность установки нескольких экземпляров на одном сервере. Все экземпляры идентифицируются с помощью специального имени. Для соединения с именованным экземпляром SQL Server можно либо указать номер порта именованного экземпляра (рекомендуется), либо указать имя экземпляра в качестве свойства URL-адреса JDBC или свойства datasource. Если имя экземпляра или свойство номера порта не указано, создается соединение с экземпляром по умолчанию. См. следующие примеры.

Чтобы указать номер порта, используйте следующий формат:

Чтобы использовать свойство URL-адреса JDBC, используйте следующий формат:

Экранирование значений в URL-адресе подключения

Может потребоваться экранировать определенные части значений URL-адреса соединения, если значения содержат специальные символы, такие как пробелы, точки с запятыми и кавычки. Драйвер JDBC поддерживает экранирование этих значений, заключая их в скобки. Например, указывает на преобразование точки с запятой.

До версии 8.4 экранированные значения могут содержать специальные символы (‘=’, ‘;’, ‘[]’ и пробелы), но не могут содержать фигурные скобки. Значения, которые необходимо преобразовать, и значения, содержащие скобки, следует добавить к коллекции свойств.

В версии 8.4 и более поздних экранированные значения могут содержать специальные символы, включая фигурные скобки. Однако закрывающие фигурные скобки должны быть экранированы. Например, при использовании пароля pass»;<>word в строке подключения необходимо будет экранировать пароль следующим образом:

Пустое пространство внутри скобок является литералом и не усекается.

Подключение с использованием встроенной проверки подлинности Windows

Драйвер JDBC поддерживает использование встроенной проверки подлинности типа 2 в операционных системах Windows с использованием свойства строки подключения integratedSecurity . Чтобы использовать встроенную проверку подлинности, скопируйте файл mssql-jdbc_auth—.dll в системный каталог Windows на компьютере, на котором установлен драйвер JDBC.

Файлы mssql-jdbc_auth—.dll устанавливаются в следующем местоположении:

Для любой операционной системы, поддерживаемой в Microsoft JDBC Driver для SQL Server, в этой статье перечислены новые компоненты Microsoft JDBC Driver 4.0 for SQL Server, которые позволяют приложениям соединяться с базой данных через встроенную проверку подлинности по протоколу Kerberos типа 4.

При применении 32-разрядной виртуальной машины Java (JVM) следует использовать файл mssql-jdbc_auth—.dll в папке x86, даже если используется операционная система x64. При применении 64-разрядной виртуальной машины Java и процессора x64 используйте файл mssql-jdbc_auth—.dll в папке x64.

Или можно задать системное свойство java.libary.path для указания каталога, в котором содержится файл mssql-jdbc_auth—.dll. Например, если драйвер JDBC установлен в каталоге по умолчанию, можно указать местоположение файла DLL, использовав следующий аргумент виртуальной машины (VM) при запуске приложения Java:

-Djava.library.path=C:\Microsoft JDBC Driver 6.4 for SQL Server\sqljdbc_\enu\auth\x86

Подключение с помощью IPv6-адресов

Драйвер JDBC поддерживает использование IPv6-адресов с коллекцией свойств соединения и свойством строки соединения serverName. Исходное значение serverName, такое как jdbc:sqlserver://serverName, не поддерживается для IPv6-адресов в строках соединения. Использования имени для serverName вместо неизмененного IPv6-адреса будет достаточно для всех вариантов соединений. Следующие примеры можно использовать как дополнительные источники сведений.

Использование свойства serverName

Использование коллекции свойств

Properties pro = new Properties();

Connection con = DriverManager.getConnection(«jdbc:sqlserver://;encrypt=true;integratedSecurity=true;», pro);

Источник

Establishing a Connection

First, you need to establish a connection with the data source you want to use. A data source can be a DBMS, a legacy file system, or some other source of data with a corresponding JDBC driver. Typically, a JDBC application connects to a target data source using one of two classes:

  • DriverManager : This fully implemented class connects an application to a data source, which is specified by a database URL. When this class first attempts to establish a connection, it automatically loads any JDBC 4.0 drivers found within the class path. Note that your application must manually load any JDBC drivers prior to version 4.0.
  • DataSource : This interface is preferred over DriverManager because it allows details about the underlying data source to be transparent to your application. A DataSource object’s properties are set so that it represents a particular data source. See Connecting with DataSource Objects for more information. For more information about developing applications with the DataSource class, see the latest The Java EE Tutorial.

Note: The samples in this tutorial use the DriverManager class instead of the DataSource class because it is easier to use and the samples do not require the features of the DataSource class.

This page covers the following topics:

Using the DriverManager Class

Connecting to your DBMS with the DriverManager class involves calling the method DriverManager.getConnection . The following method, JDBCTutorialUtilities.getConnection , establishes a database connection:

public Connection getConnection() throws SQLException < Connection conn = null; Properties connectionProps = new Properties(); connectionProps.put("user", this.userName); connectionProps.put("password", this.password); if (this.dbms.equals("mysql")) < conn = DriverManager.getConnection( "jdbc:" + this.dbms + "://" + this.serverName + ":" + this.portNumber + "/", connectionProps); >else if (this.dbms.equals("derby")) < conn = DriverManager.getConnection( "jdbc:" + this.dbms + ":" + this.dbName + ";create=true", connectionProps); >System.out.println("Connected to database"); return conn; >

The method DriverManager.getConnection establishes a database connection. This method requires a database URL, which varies depending on your DBMS. The following are some examples of database URLs:

  1. MySQL: jdbc:mysql://localhost:3306/ , where localhost is the name of the server hosting your database, and 3306 is the port number
  2. Java DB: jdbc:derby:testdb;create=true , where testdb is the name of the database to connect to, and create=true instructs the DBMS to create the database. Note: This URL establishes a database connection with the Java DB Embedded Driver. Java DB also includes a Network Client Driver, which uses a different URL.

This method specifies the user name and password required to access the DBMS with a Properties object.

  • Typically, in the database URL, you also specify the name of an existing database to which you want to connect. For example, the URL jdbc:mysql://localhost:3306/mysql represents the database URL for the MySQL database named mysql . The samples in this tutorial use a URL that does not specify a specific database because the samples create a new database.
  • In previous versions of JDBC, to obtain a connection, you first had to initialize your JDBC driver by calling the method Class.forName . This methods required an object of type java.sql.Driver . Each JDBC driver contains one or more classes that implements the interface java.sql.Driver . The drivers for Java DB are org.apache.derby.jdbc.EmbeddedDriver and org.apache.derby.jdbc.ClientDriver , and the one for MySQL Connector/J is com.mysql.cj.jdbc.Driver . See the documentation of your DBMS driver to obtain the name of the class that implements the interface java.sql.Driver . Any JDBC 4.0 drivers that are found in your class path are automatically loaded. (However, you must manually load any drivers prior to JDBC 4.0 with the method Class.forName .)

The method returns a Connection object, which represents a connection with the DBMS or a specific database. Query the database through this object.

Specifying Database Connection URLs

A database connection URL is a string that your DBMS JDBC driver uses to connect to a database. It can contain information such as where to search for the database, the name of the database to connect to, and configuration properties. The exact syntax of a database connection URL is specified by your DBMS.

Java DB Database Connection URLs

The following is the database connection URL syntax for Java DB:

jdbc:derby:[subsubprotocol:][databaseName][;attribute=value]*
Оцените статью