Java AI
5 subscribers
8 photos
1 file
13 links
Java & AI: Искусственный интеллект на языке Java и интересные lib's.

Добро пожаловать на канал, посвященный Java!
Download Telegram
Создайте собственного чат-бота с Spring Boot и WebSocket! 🤖💬

Хотите сделать свой Telegram-чат более интерактивным?  Spring Boot и WebSocket - идеальное сочетание для создания мощных и гибких чат-ботов!

Что вы получите?

🚀 Быстрая разработка: Используйте Spring Boot для создания серверной части чат-бота с минимальным количеством кода.
Реальное время:  WebSocket обеспечивает мгновенное взаимодействие с пользователями, делая чат-бота живым и реактивным.
⚙️ Гибкость: Настройте логику чат-бота по своему желанию, используя возможности Spring Boot и Java.

Примеры:

💬 Информационный бот:  Предоставьте пользователям доступ к базе данных, новостям, погоде и другим данным в режиме реального времени.
🎮 Игровой бот:  Создайте простой текстовый квест или игру, которая будет развлекать пользователей.
🧰 Утилитарный бот:  Автоматизируйте задачи, такие как напоминания, планирование задач или отправка уведомлений.

Попробуйте сами!

1.  Загрузите стартовый проект:  Найдите готовый проект на GitHub, который поможет вам начать (например, https://github.com/spring-projects/spring-boot/tree/main/spring-boot-samples/spring-boot-sample-websocket).
2.  Настройте бота в Telegram:  Создайте бота в Telegram и получите его токен.
3.  Подключите WebSocket:  Встройте WebSocket-соединение для взаимодействия с ботом.
4.  Разработайте логику:  Напишите код для обработки сообщений и ответов.

Следите за обновлениями!

Мы опубликуем больше материалов о разработке чат-ботов с Spring Boot и WebSocket!

#Springboot #WebSocket #Chatbot #Telegram #Java #Programming
📚 🦖 Spring Boot 3.2 + Oracle 11g: Как подружить «старичка» с новым Hibernate?

Многие при переходе на Spring Boot 3.2+ сталкиваются с паникой: «А где мой Oracle10gDialect?». В Hibernate 6 (который идет в комплекте) структуру диалектов сильно перетряхнули.

Разбираемся, есть ли жизнь у Oracle 11g в мире Spring Boot 3.2.4.

🔖 Короткий ответ: Да, поддержка есть.
Но она работает иначе, чем в Spring Boot 2.x. Раньше мы выбирали конкретный класс под версию базы. Теперь в Hibernate 6 остался один универсальный org.hibernate.dialect.OracleDialect.

🔖 🛠 Как это настроить?
Теперь Hibernate пытается определить версию базы автоматически через JDBC-метаданные. Но если ваша 11g стоит за специфическим прокси или автоопределение лагает, нужно помочь ему в application.yml:

spring:
  jpa:
    database-platform: org.hibernate.dialect.OracleDialect
    properties:
      hibernate:
        dialect:
          oracle:
            version: 11 # Явно указываем Hibernate, что база старая


🔖 ⚠️ Главная «ловушка» — Пагинация
Это то, на чем горят 90% разработчиков.
Oracle 12c+ поддерживает стандартный SQL FETCH NEXT ... ROWS ONLY.
Oracle 11g понимает только старый добрый (и страшный) ROWNUM.

Hibernate 6 по умолчанию может попытаться отправить запрос с FETCH NEXT, и ваша 11g выдаст ORA-00933. Если это произошло, даже указание version: 11 иногда не спасает.

Решение: создание кастомного диалекта.
public class Oracle11gLegacyDialect extends OracleDialect {
    @Override
    public org.hibernate.dialect.pagination.LimitHandler getLimitHandler() {
        // Принудительно возвращаем обработчик для ROWNUM
        return org.hibernate.dialect.pagination.LegacyOracleLimitHandler.INSTANCE;
    }
}

И прописываем путь к этому классу в database-platform.

🔖 💡 Совет по драйверу
Для работы со Spring Boot 3.2 (Java 17+) используйте драйвер ojdbc11 (даже для базы 11g). Он стабильнее работает с современными пулами соединений типа HikariCP.

Итог: Oracle 11g официально «в деле», но требует чуть больше внимания к настройкам диалекта.

#SpringBoot #Java #Oracle #Hibernate #Backend #Tips
1