powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Как подключится к SQL Server и сделать простейший запрос?
25 сообщений из 90, страница 1 из 4
Как подключится к SQL Server и сделать простейший запрос?
    #39816248
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу сильно не ругаться, уже несколько дней пытаюсь освоить Java, параллельно используя две программы: Eclipse и NetBeans и уже как-то очень тяжко понимать что куда и откуда.
Скачал и установил JDK, потом JDE, скачал драйвер JDBC для SQL Server (там правда много файлов, думаю нужно использовать sqljdbc42.jar)
Как данный файл подгрузить в проект вроде бы разобрался.

Обязательно использую import java.sql.*; вроде бы этого достаточно пока.

Нашёл как делать строку:

Код: java
1.
2.
3.
4.
5.
6.
        String instanceName = " serverName\\instanseName ";
        String databaseName = "Test";
        String userName = "Usr";
        String pass = "**********";
        String connectionUrl = "jdbc:sqlserver://%1$s;databaseName=%2$s;user=%3$s;password=%4$s;";
        String connectionString = String.format(connectionUrl, instanceName, databaseName, userName, pass);



Возможно уже на данном этапе я не понимаю как правильно нужно проставлять сюда данные

Пробовал применять integratedSecurity=true, но драыер пишет, что не поддерживает, цитирую:

Код: java
1.
com.microsoft.sqlserver.jdbc.SQLServerException: Этот драйвер не настроен для встроенной проверки подлинности.



И это конечно уже сильно ставит в тупик, так мне пока и не удалось сделать соединение, мой код примерно такой:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
public class connectURL {
    public static void main(String[] args) {
        // Формирование строки подключения
        String connectionUrl = "jdbc:sqlserver://abon;databaseName=abon;integratedSecurity=true;";
        String connectionString = String.format(connectionUrl);
        try {
            // Подключение к базе данных
            Connection con = DriverManager.getConnection(connectionString);
            // Отправка запроса на выборку и получение результатов
            Statement stmt = con.createStatement();
            ResultSet executeQuery = stmt.executeQuery("SELECT top 10 * FROM [DogSch]");
            // Обход результатов выборки
            while (executeQuery.next()) {
                System.out.println(executeQuery.getString("kodtu1"));
            }
            // Закрываем соединение
            executeQuery.close();
            stmt.close();
            con.close();
        } catch (SQLException ex) {
            // Обработка исключений
            Logger.getLogger(connectURL.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}



Направьте меня или покажите что не так я делаю
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816253
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKES, непонтяно, к какой версии sql сервака, но тут - по-моему все довольно подробно описано:

https://docs.microsoft.com/ru-ru/sql/connect/jdbc/using-the-jdbc-driver?view=sql-server-2017
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816260
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Попробовал скачать последний драйвер: mssql-jdbc-7.2.2.jre8 (ну как я понял что последний)
Ошибка та же
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816267
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816268
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://docs.microsoft.com/ru-ru/sql/connect/jdbc/system-requirements-for-the-jdbc-driver?view=sql-server-2017


и до кучи - совместимость драйверов с версией явы и где-что оттестировано.
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816309
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKES, попробуй больше параметров дать. Может дефолтные не так работают. Как тут пишут.

https://docs.microsoft.com/en-us/sql/connect/jdbc/using-kerberos-integrated-authentication-to-connect-to-sql-server?view=sql-server-2017

Код: java
1.
jdbc:sqlserver://servername=server_name;integratedSecurity=true;authenticationScheme=JavaKerberos;userName=user@REALM;password=****
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816310
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин, Добавил я параметр authenticationScheme = JavaKerberos;

Теперь ошибка такая: "Произошел сбой входа Kerberos Не удалось выполнить внутреннюю проверку подлинности"

Да и в целом я не уверен, что всё правильно делаю
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816316
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте использовать jtds драйвер вместо родного:

http://jtds.sourceforge.net/faq.html
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816328
Фотография Пылинка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.попробуйте использовать jtds драйвер вместо родного:

http://jtds.sourceforge.net/faq.html
Он же написал - автор уже несколько дней пытаюсь освоить Java
Дайте ему хотя бы пару месяцев на изучение, а не устраивайте тут курсы для тех кто не может работающий пример скопировать.
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816334
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПылинкаDmitry.попробуйте использовать jtds драйвер вместо родного:

http://jtds.sourceforge.net/faq.html
Он же написал - автор уже несколько дней пытаюсь освоить Java
Дайте ему хотя бы пару месяцев на изучение, а не устраивайте тут курсы для тех кто не может работающий пример скопировать.

Это надо 2 месяца чтобы разораться в куче этих драйверов и версий, чтобы всё таки сопоставить нужный вариант?
Мда... хотя наверное так и есть, этих версий JDK, JRE, JDBC и очень большая куча софта под всё это, тут действительно нужно прямо разбирать каждую версию из сотни, а может быть тысячи выпущенных
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816336
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пылинка,
И на счёт работающий код, он может быть и работал когда-то и было неплохо если бы указавали версии всех софтов, драйверов и другой несогласующей ....
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816345
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интеграция мать ее так. Эти вопросы всегда были ступором для новичков.
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816346
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я слепой или автор даже ошибку не написал?

1)
Нафига сюда приплили Integrated Security мне вообще не понятно. Автор же явно пытается указать и user name и password в строке соединения. при чем и зачем Integrated Security и Kerberos.

Код: plaintext
1.
2.
Integrated Security
When false, User ID and Password are specified in the connection. When true, the current Windows account credentials are used for authentication.

2)
По первому коду автора явно видны пробелы в instanceName. С MS SQL не работал, но нафига они там нужны?

Вывод: ошибки нет, код не полный, результирующий (после format) Connection String автор не привел - гадание на кофейной гуще, что же у автора "так мне пока и не удалось".
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816352
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЯ слепой или автор даже ошибку не написал?

1)
Нафига сюда приплили Integrated Security мне вообще не понятно. Автор же явно пытается указать и user name и password в строке соединения. при чем и зачем Integrated Security и Kerberos.

Код: plaintext
1.
2.
Integrated Security
When false, User ID and Password are specified in the connection. When true, the current Windows account credentials are used for authentication.

2)
По первому коду автора явно видны пробелы в instanceName. С MS SQL не работал, но нафига они там нужны?

Вывод: ошибки нет, код не полный, результирующий (после format) Connection String автор не привел - гадание на кофейной гуще, что же у автора "так мне пока и не удалось".

Оу, оу, потише, с MS SQL я уже 20 лет работаю, программировал не разных языках и могу в принципе за пару часов научить делать программу простейшцю для коннекта и выборки, и вот я решил "немного" изучить Java, пролистал пару учебников и решил сделать маленький проектик, на понимание как это работает, а тут ТАКИЕ грабли, которые я даже в Visual Studio не встречал (давно это было)... а теперь попродробнее что не так с instanceName ?
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816356
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKES, киньте полный лог ошибки.
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816360
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKES....а теперь попродробнее что не так с instanceName ?
пробелы в instanceName
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816361
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

В NetBeans такая ошибка:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
мая 22, 2019 2:01:09 PM helloapp.connectURL main
SEVERE: null
com.microsoft.sqlserver.jdbc.SQLServerException: Произошел сбой входа Kerberos Не удалось выполнить внутреннюю проверку подлинности. ClientConnectionId:9323d7f3-b11b-40bd-b193-9403974264a7 из-за javax.security.auth.login.LoginException (Cannot get any of properties: [user, USER] from con properties not available to garner  authentication information  from the user)
	at com.microsoft.sqlserver.jdbc.KerbAuthentication.intAuthInit(KerbAuthentication.java:109)
	at com.microsoft.sqlserver.jdbc.KerbAuthentication.GenerateClientContext(KerbAuthentication.java:355)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4789)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3668)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:94)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3627)
	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7194)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2935)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2456)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2103)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1950)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1162)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:735)
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:251)
	at helloapp.connectURL.main(connectURL.java:14)
Caused by: javax.security.auth.login.LoginException: Cannot get any of properties: [user, USER] from con properties not available to garner  authentication information  from the user
	at jdk.security.auth/com.sun.security.auth.module.Krb5LoginModule.promptForName(Krb5LoginModule.java:845)
	at jdk.security.auth/com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:681)
	at jdk.security.auth/com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:592)
	at java.base/javax.security.auth.login.LoginContext.invoke(LoginContext.java:726)
	at java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:665)
	at java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:663)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:688)
	at java.base/javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:663)
	at java.base/javax.security.auth.login.LoginContext.login(LoginContext.java:574)
	at com.microsoft.sqlserver.jdbc.KerbAuthentication.intAuthInit(KerbAuthentication.java:86)
	... 15 more

BUILD SUCCESSFUL (total time: 1 second)



В Eclipse сейчас вот так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at Pack.ConnectSQL.main(ConnectSQL.java:20)
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816363
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevAngelOKES....а теперь попродробнее что не так с instanceName ?
пробелы в instanceName


Я руководствовался вот этой статьей: https://docs.microsoft.com/ru-ru/sql/connect/jdbc/building-the-connection-url?view=sql-server-2017, а именно:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

jdbc:sqlserver:// (обязательно) известен как подпротокол и является константой.

serverName (необязательно) является адресом сервера, с которым выполняется соединение. Это может быть DNS, IP-адрес, локальный узел или 127.0.0.1 локального компьютера. Имя сервера необходимо указать в коллекции свойств, если оно не указано в URL-адресе соединения.

instanceName (необязательно) является экземпляром, с которым выполняется соединение с serverName. Подключение выполняется к экземпляру по умолчанию, если не указано другое.

portNumber (необязательно) является портом, с которым выполняется соединение с serverName. Значение по умолчанию — 1433. Если соединение выполняется с портом по умолчанию, в URL-адресе необязательно указывать порт или символ ':' перед ним.



На основании этого я просто оставил имя Abon и не стал указывать ни порт, ни instanceName
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816367
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печально это все.

Вобщем даже если пофиксить - все равно автор не поймет и в следующий раз - теже грабли.

Кстати зачем mssql?

В учебных задачах с БД берут H2.
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816369
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПечально это все.

Вобщем даже если пофиксить - все равно автор не поймет и в следующий раз - теже грабли.

Кстати зачем mssql?

В учебных задачах с БД берут H2.

Так у меня база на mssql, мне именно с ней и нужно работать
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816376
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKES, так а эта самау аутентификация какая должна быть? доменная эта или просто логин и пароль без всяких доменов и керберосов?
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816377
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так-то я уже понял, что Java это большой гемморой, но всё таки хочеться разобраться и написать класс для соединения с сервером
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816380
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинAngelOKES, так а эта самау аутентификация какая должна быть? доменная эта или просто логин и пароль без всяких доменов и керберосов?

Ну в целом мне уже пофиг, хоть как-нибудь уже присоединиться, но хотелось бы конечно чтобы он сам брал доменной имя пользователя и пароль, потому что я не хотел бы писать пароли всех пользователей или оставлять в программе все эти данные
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816386
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKESОзверинAngelOKES, так а эта самау аутентификация какая должна быть? доменная эта или просто логин и пароль без всяких доменов и керберосов?

Ну в целом мне уже пофиг, хоть как-нибудь уже присоединиться, но хотелось бы конечно чтобы он сам брал доменной имя пользователя и пароль, потому что я не хотел бы писать пароли всех пользователей или оставлять в программе все эти данные

тогда есть смысл начать с NativeAuthentication. Уберите authenticationScheme , передайте нативного пользователя (я хз, как то же отличаются на сервак пользователи с разными режимами аутентификации?) и пароль от него и давайте полный лог ошибки .

В эклипсе, к слову, странная ошибка, потому что начиная 4.0 версии jdbc драйверов classforname делать не надо жы.
...
Рейтинг: 0 / 0
Как подключится к SQL Server и сделать простейший запрос?
    #39816390
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин....В эклипсе, к слову, странная ошибка.
Чем странная?
драйвер в classpath не нашли, вот и ошибка
...
Рейтинг: 0 / 0
25 сообщений из 90, страница 1 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Как подключится к SQL Server и сделать простейший запрос?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]