From 748e13151e097a408f73111050d562158407c383 Mon Sep 17 00:00:00 2001 From: Telman Bayram Date: Sat, 8 Mar 2025 04:52:36 +0400 Subject: [PATCH] I store the data to db. --- pom.xml | 15 +++++++++++++ .../controller/ChatController.java | 10 +++++++-- .../websocketdemo/model/ChatMessage.java | 21 ++++++++++++++++--- .../repository/ChatMessageRepository.java | 9 ++++++++ src/main/resources/application.properties | 6 ++++++ 5 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/example/websocketdemo/repository/ChatMessageRepository.java diff --git a/pom.xml b/pom.xml index ae5ce362..394e2320 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,21 @@ + + jakarta.persistence + jakarta.persistence-api + 3.1.0 + + + org.postgresql + postgresql + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot spring-boot-starter-websocket diff --git a/src/main/java/com/example/websocketdemo/controller/ChatController.java b/src/main/java/com/example/websocketdemo/controller/ChatController.java index ac4e6055..d318ca45 100644 --- a/src/main/java/com/example/websocketdemo/controller/ChatController.java +++ b/src/main/java/com/example/websocketdemo/controller/ChatController.java @@ -6,16 +6,23 @@ import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.stereotype.Controller; +import com.example.websocketdemo.repository.ChatMessageRepository; +import org.springframework.beans.factory.annotation.Autowired; /** * Created by rajeevkumarsingh on 24/07/17. */ + @Controller public class ChatController { + @Autowired + private ChatMessageRepository chatMessageRepository; + @MessageMapping("/chat.sendMessage") @SendTo("/topic/public") public ChatMessage sendMessage(@Payload ChatMessage chatMessage) { + chatMessageRepository.save(chatMessage); // Mesajı veritabanına kaydediyoruz return chatMessage; } @@ -23,9 +30,8 @@ public ChatMessage sendMessage(@Payload ChatMessage chatMessage) { @SendTo("/topic/public") public ChatMessage addUser(@Payload ChatMessage chatMessage, SimpMessageHeaderAccessor headerAccessor) { - // Add username in web socket session headerAccessor.getSessionAttributes().put("username", chatMessage.getSender()); + chatMessageRepository.save(chatMessage); // Kullanıcının girişini de kaydediyoruz return chatMessage; } - } diff --git a/src/main/java/com/example/websocketdemo/model/ChatMessage.java b/src/main/java/com/example/websocketdemo/model/ChatMessage.java index b158d1ad..62e136d4 100644 --- a/src/main/java/com/example/websocketdemo/model/ChatMessage.java +++ b/src/main/java/com/example/websocketdemo/model/ChatMessage.java @@ -1,10 +1,17 @@ package com.example.websocketdemo.model; -/** - * Created by rajeevkumarsingh on 24/07/17. - */ +import jakarta.persistence.*; + +@Entity +@Table(name = "chat_messages") public class ChatMessage { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Enumerated(EnumType.STRING) private MessageType type; + private String content; private String sender; @@ -14,6 +21,14 @@ public enum MessageType { LEAVE } + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + public MessageType getType() { return type; } diff --git a/src/main/java/com/example/websocketdemo/repository/ChatMessageRepository.java b/src/main/java/com/example/websocketdemo/repository/ChatMessageRepository.java new file mode 100644 index 00000000..86ae7ef5 --- /dev/null +++ b/src/main/java/com/example/websocketdemo/repository/ChatMessageRepository.java @@ -0,0 +1,9 @@ +package com.example.websocketdemo.repository; + +import com.example.websocketdemo.model.ChatMessage; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ChatMessageRepository extends JpaRepository { +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e69de29b..663c61e5 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -0,0 +1,6 @@ +spring.datasource.url=jdbc:postgresql://localhost:5432/postgres +spring.datasource.username=postgres +spring.datasource.password=yourpassword +spring.datasource.driver-class-name=org.postgresql.Driver +spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect +spring.jpa.hibernate.ddl-auto=update