Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Java, MySql sql-запросы не работают


Автор: javawebsoft 27.2.2020, 21:33
Добрый день.
Имею БД (имя схемы mydbschema) на MySQL. В качестве сервера приложений используется Payara Server 5.192, в JDBC которого настроен JDBC Connection Pool и JDBC Resources, для подключения к этой базе. В веб-приложение (проект на java) в web.xml указаны настройки для подключения к моей базе (см.ниже). Когда в коде пишу sql-запрос, то чтобы он работал вынужден указывать явно имя схемы.

Скажите, пожалуйста, что и где нужно указать в настройках, чтобы была возможность писать в коде sql-запросы без указания имени схемы? Т.е. указать, что такую-то схему (БД) использовать по умолчанию.

Пример:
Код
select * from mydbschema.mytable1 where field1>10 
ok

Если написать без имени схемы, то не работает
Код
select * from mytable1 where field1>10
error


web.xml
Код
...
<resource-ref>
      <res-ref-name>jdbc/mydbschema</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
      <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

Автор: Bulat 28.2.2020, 09:19
Ну на моей памяти это можно указать в момент соединения с самим сервером. Т.е. то место где-то указываешь хост, порт(, вот здесь можно добавить имя БД).. потом еще отдельно пишешь логин и пароль....

Автор: javawebsoft 28.2.2020, 15:14
Цитата(Bulat @  28.2.2020,  09:19 Найти цитируемый пост)
Ну на моей памяти это можно указать в момент соединения с самим сервером. 

Можно поподробнее - что и где нужно указать?

Автор: Bulat 28.2.2020, 16:03
Цитата(javawebsoft @  28.2.2020,  15:14 Найти цитируемый пост)
Можно поподробнее - что и где нужно указать?


https://www.javatpoint.com/example-to-connect-to-the-mysql-database

Из выше указанной ссылки:

Цитата

Connection con=DriverManager.getConnection(  
"jdbc:mysql://localhost:3306/sonoo","root","root");  
//here sonoo is database name, root is username and password  


here sonoo is database name - перевод нужен?



https://tproger.ru/translations/java-jdbc-example/

Цитата

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

Строка подключения JDBC (например: jdbc:mysql://localhost:3306/test).
Имя пользователя (root).
Пароль (root).
База данных с некоторым количеством таблиц для примера (например, база данных книг).
Строка подключения для MySQL начинается с jdbc:mysql. Это название протокола соединения, за которым следуют хост и порт подключения, на которых запущена база данных. В нашем случае это localhost с портом по умолчанию 3306 (если вы его не поменяли при установке). Следующая часть — test — имя базы данных, которая уже существует в MySQL. Мы можем создать таблицу Books:


Еще пояснения нужны?

Автор: javawebsoft 2.3.2020, 16:39
Цитата(Bulat @  28.2.2020,  16:03 Найти цитируемый пост)
Еще пояснения нужны?

Спасибо! Нашел решение - в моем коде нужно было добавить conn.SetCatalog("mydbschema");

Автор: sergioK1 5.3.2020, 19:03
Цитата(javawebsoft @ 2.3.2020,  15:39)
Цитата(Bulat @  28.2.2020,  16:03 Найти цитируемый пост)
Еще пояснения нужны?

Спасибо! Нашел решение - в моем коде нужно было добавить conn.SetCatalog("mydbschema");

Это не то немного, в конфиге драйверу можно указать имя базы , а можно нет , но тогда нужно это имя писать , 
conn.SetCatalog("mydbschema");  переключается на выбранный тобой DB ,

RTFH smile  https://docs.oracle.com/javase/7/docs/api/index.html?java/sql/Connection.html

Автор: Bulat 6.3.2020, 15:05
Цитата(sergioK1 @  5.3.2020,  19:03 Найти цитируемый пост)
Это не то немного

И то и то, и это и то  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)