diff --git a/Drafts/dbdemo/pom.xml b/Drafts/dbdemo/pom.xml
index dc3d196..c769aaa 100644
--- a/Drafts/dbdemo/pom.xml
+++ b/Drafts/dbdemo/pom.xml
@@ -54,6 +54,11 @@
org.flywaydb
flyway-core
+
+ org.projectlombok
+ lombok
+ true
+
diff --git a/Drafts/dbdemo/src/main/java/de/telran/Application.java b/Drafts/dbdemo/src/main/java/de/telran/Application.java
new file mode 100644
index 0000000..603f352
--- /dev/null
+++ b/Drafts/dbdemo/src/main/java/de/telran/Application.java
@@ -0,0 +1,11 @@
+package de.telran;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Application {
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+}
diff --git a/Drafts/dbdemo/src/main/java/de/telran/controller/StudentController.java b/Drafts/dbdemo/src/main/java/de/telran/controller/StudentController.java
new file mode 100644
index 0000000..09442e3
--- /dev/null
+++ b/Drafts/dbdemo/src/main/java/de/telran/controller/StudentController.java
@@ -0,0 +1,40 @@
+package de.telran.controller;
+
+import de.telran.model.Student;
+import de.telran.service.StudentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+public class StudentController {
+
+ StudentService service;
+
+ @Autowired
+ public StudentController(StudentService service) {
+ this.service = service;
+ }
+
+ @GetMapping
+ List getAllStudents() {
+ return service.getAllStudents();
+ }
+
+ @PostMapping("/api/students")
+ Student createStudent(@RequestBody Student student) {
+ return service.createStudent(student);
+ }
+
+ @PutMapping("/api/students")
+ Student assignStudentToCourse(@RequestBody Student student) {
+ service.assignStudentToCourse(student);
+ return service.getStudentById(student.getStudentId());
+ }
+
+}
diff --git a/Drafts/dbdemo/src/main/java/de/telran/model/Student.java b/Drafts/dbdemo/src/main/java/de/telran/model/Student.java
new file mode 100644
index 0000000..b93754d
--- /dev/null
+++ b/Drafts/dbdemo/src/main/java/de/telran/model/Student.java
@@ -0,0 +1,20 @@
+package de.telran.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+import org.springframework.lang.Nullable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Data
+@Entity
+@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
+public class Student {
+ private @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long studentId;
+ private String firstName;
+ private String lastName;
+ private @Nullable Long courseId;
+}
diff --git a/Drafts/dbdemo/src/main/java/de/telran/repository/StudentRepository.java b/Drafts/dbdemo/src/main/java/de/telran/repository/StudentRepository.java
new file mode 100644
index 0000000..7cdd25f
--- /dev/null
+++ b/Drafts/dbdemo/src/main/java/de/telran/repository/StudentRepository.java
@@ -0,0 +1,16 @@
+package de.telran.repository;
+
+import de.telran.model.Student;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.transaction.annotation.Transactional;
+
+public interface StudentRepository extends JpaRepository {
+
+ @Transactional
+ @Modifying
+ @Query("UPDATE Student s SET s.courseId = :courseId WHERE s.studentId = :studentId")
+ int assignStudentToCourse(@Param("studentId") long studentId, @Param("courseId") long courseId);
+}
diff --git a/Drafts/dbdemo/src/main/java/de/telran/service/StudentService.java b/Drafts/dbdemo/src/main/java/de/telran/service/StudentService.java
new file mode 100644
index 0000000..8c270b8
--- /dev/null
+++ b/Drafts/dbdemo/src/main/java/de/telran/service/StudentService.java
@@ -0,0 +1,31 @@
+package de.telran.service;
+
+import de.telran.model.Student;
+import de.telran.repository.StudentRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class StudentService {
+
+ @Autowired
+ StudentRepository repository;
+
+ public List getAllStudents() {
+ return repository.findAll();
+ }
+
+ public Student createStudent(Student student) {
+ return repository.save(student);
+ }
+
+ public void assignStudentToCourse(Student student) {
+ repository.assignStudentToCourse(student.getStudentId(), student.getCourseId());
+ }
+
+ public Student getStudentById(Long id) {
+ return repository.getOne(id);
+ }
+}