Pull to refresh

Как подключить Microsoft SQL Server к Intellij Idea Ultimate

Предисловие

Всем привет! Это моя первая статья в жизни, поэтому в ней может быть много неточностей. Мои знания в программирования слабы, но у меня получилось решить проблему, о которой мало что было написано на просторах интернета (либо я плохо искал). Но надеюсь статья вам поможет =)

Подготовительный этап

В данном туториале мы подключаемся к библиотеке JDBC. Нам потребуется следующее:
1) Intellij Idea Ultimate
2) SQL Server Management Studio (SSMS)
3) Драйвер JDBC, который мы разархивируем в Program Files
4) SQL Server Configuration Manager

Настройка проекта в Intellij Idea

Первое, что нужно сделать, добавить зависимость в pom.xml:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>11.2.2.jre11</version>
</dependency>

Настройка SQL Server Management Studio

Запускаем SSMS и создаём нового пользователя:

Во вкладке "Общие" задаём какое-нибудь имя пользователю и пароль, при этом, чтобы галочка стояла у "Проверка подлинности SQL Server":

Далее переходим во вкладку "Роли сервера" и ставим галочку возле "sysadmin":

Ещё заходим в свойства своего сервера:

Во вкладке "Безопасность" ставим галочку у "Проверки подлинности SQL Server и Windows":

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

CREATE DATABASE example;
USE example
GO
CREATE TABLE first
(
	ID INT PRIMARY KEY IDENTITY(1,1),
	Num INT NOT NULL
)

Настройка SQL Server Configuration Manager

Дальше мы будем производить настройку в Configuration Manager, но заранее оговорюсь, что я не уверен наверняка, нужны ли все шаги, которые будут описаны ниже.
1) Переходим в "Протоколы для MSSQLSERVER" и включаем все протоколы:

2) Переходим в свойства TCP/IP и ставим настройки, как на рисунке ниже:

3) Далее вкладка "IP-адреса". Вот здесь есть неточность. Я приведу все скриншоты настроек, которые у меня есть, но может оказаться так, что что-то может быть не необходимым. Но наверняка скажу, что IP4 нужен.

В IP11 и IP12 я ставил TCP-порт 1433 и в строчке "Включено" установил параметр "Да":

Для настройки IP4 нужно поменять IP-адрес. Заходите на какой-либо ресурс, к примеру этот, и выписываете:

В IPALL я вписал TCP-порт, а значение в "Динамических TCP-портах" потом подставилось само:

Настройка Брандмауэра

Данный этап, возможно, является необязательным, но всё же упомяну его. В ходе работы встречалась ошибка, где компилятор ругался на брандмауэр, поэтому для его решения есть полезная ссылка. Все шаги подробно расписаны, поэтому я не буду расписывать данный этап. Но единственное, на данном сайте написано про порт 80, вместо него мы пишем порт 1433. Вот ссылка.

Подключение базы данных

Заходим в Intellij Idea и переходим, как показано на рисунке:

Хост ставим localhost, порт = 1433. Имя пользователя, пароль и имя БД пишем свои:

После ввода нажимаем на "Test Connection":

ВНИМАНИЕ!!! У вас может появиться данная ошибка:

Для её решения переходим в SSMS в свойства данного пользователя и в полях "Пароль", "Подтверждение пароля", "Старый пароль" пишем тот же пароль, что мы устанавливали ранее для данного пользователя и нажимаем ОК. (Чтобы показать ошибку, я создал другого пользователя).

Проделываем процедуру по подключению выше и вуаля, всё работает:

Нажимаем Apply и ОК. Выбираем нашу подключенную БД и нажимаем Ctrl+F5:

После этого мы можем подключить нашу БД через код

За подключение БД отвечает следующий кусочек кода, прописанный в классе. Ваши данные вписываете в нужные поля (DBName, user, pass):

private val connection: Connection

    init {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
        val connectionUrl =
            "jdbc:sqlserver://localhost:1433;encrypt=true;database=DBName;trustServerCertificate=true;"
        connection = DriverManager.getConnection(connectionUrl, "user", "pass")
    }

Заключение

Спасибо за прочтение. Надеюсь, кому-то это помогло =)

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.