Как стать автором
Обновить

Как подключить 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")
    }

Заключение

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

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.