diff --git a/build.gradle b/build.gradle index aac8154..1511cd7 100644 --- a/build.gradle +++ b/build.gradle @@ -13,6 +13,9 @@ repositories { } dependencies { + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'com.h2database:h2:2.1.210' + implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } diff --git a/src/main/java/ru/IP_LabWorks/IP/configuration/TypeConfiguration.java b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/configuration/TypeConfiguration.java similarity index 66% rename from src/main/java/ru/IP_LabWorks/IP/configuration/TypeConfiguration.java rename to src/main/java/ru/IP_LabWorks/IP/TypeCalculator/configuration/TypeConfiguration.java index 97be210..858f11c 100644 --- a/src/main/java/ru/IP_LabWorks/IP/configuration/TypeConfiguration.java +++ b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/configuration/TypeConfiguration.java @@ -1,11 +1,11 @@ -package ru.IP_LabWorks.IP.configuration; +package ru.IP_LabWorks.IP.TypeCalculator.configuration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import ru.IP_LabWorks.IP.domain.TypeArray; -import ru.IP_LabWorks.IP.domain.TypeDouble; -import ru.IP_LabWorks.IP.domain.TypeInt; -import ru.IP_LabWorks.IP.domain.TypeString; +import ru.IP_LabWorks.IP.TypeCalculator.domain.TypeInt; +import ru.IP_LabWorks.IP.TypeCalculator.domain.TypeArray; +import ru.IP_LabWorks.IP.TypeCalculator.domain.TypeDouble; +import ru.IP_LabWorks.IP.TypeCalculator.domain.TypeString; @Configuration public class TypeConfiguration { diff --git a/src/main/java/ru/IP_LabWorks/IP/controllers/MainController.java b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/controllers/MainController.java similarity index 89% rename from src/main/java/ru/IP_LabWorks/IP/controllers/MainController.java rename to src/main/java/ru/IP_LabWorks/IP/TypeCalculator/controllers/MainController.java index 4b94c54..78fdc9f 100644 --- a/src/main/java/ru/IP_LabWorks/IP/controllers/MainController.java +++ b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/controllers/MainController.java @@ -1,11 +1,9 @@ -package ru.IP_LabWorks.IP.controllers; +package ru.IP_LabWorks.IP.TypeCalculator.controllers; -import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import ru.IP_LabWorks.IP.domain.ITypeInterface; -import ru.IP_LabWorks.IP.service.TypeService; +import ru.IP_LabWorks.IP.TypeCalculator.service.TypeService; @RestController public class MainController { diff --git a/src/main/java/ru/IP_LabWorks/IP/domain/ITypeInterface.java b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/ITypeInterface.java similarity index 78% rename from src/main/java/ru/IP_LabWorks/IP/domain/ITypeInterface.java rename to src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/ITypeInterface.java index a85610a..f3994ac 100644 --- a/src/main/java/ru/IP_LabWorks/IP/domain/ITypeInterface.java +++ b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/ITypeInterface.java @@ -1,4 +1,4 @@ -package ru.IP_LabWorks.IP.domain; +package ru.IP_LabWorks.IP.TypeCalculator.domain; public interface ITypeInterface { T Method1(T value1, T value2); diff --git a/src/main/java/ru/IP_LabWorks/IP/domain/TypeArray.java b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeArray.java similarity index 95% rename from src/main/java/ru/IP_LabWorks/IP/domain/TypeArray.java rename to src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeArray.java index 8619bbd..bcabb4b 100644 --- a/src/main/java/ru/IP_LabWorks/IP/domain/TypeArray.java +++ b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeArray.java @@ -1,6 +1,5 @@ -package ru.IP_LabWorks.IP.domain; +package ru.IP_LabWorks.IP.TypeCalculator.domain; -import java.lang.reflect.Array; import java.util.ArrayList; public class TypeArray implements ITypeInterface> { diff --git a/src/main/java/ru/IP_LabWorks/IP/domain/TypeDouble.java b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeDouble.java similarity index 91% rename from src/main/java/ru/IP_LabWorks/IP/domain/TypeDouble.java rename to src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeDouble.java index ab0e64b..3fa6a28 100644 --- a/src/main/java/ru/IP_LabWorks/IP/domain/TypeDouble.java +++ b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeDouble.java @@ -1,4 +1,4 @@ -package ru.IP_LabWorks.IP.domain; +package ru.IP_LabWorks.IP.TypeCalculator.domain; public class TypeDouble implements ITypeInterface { diff --git a/src/main/java/ru/IP_LabWorks/IP/domain/TypeInt.java b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeInt.java similarity index 91% rename from src/main/java/ru/IP_LabWorks/IP/domain/TypeInt.java rename to src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeInt.java index 18b5891..301b9a9 100644 --- a/src/main/java/ru/IP_LabWorks/IP/domain/TypeInt.java +++ b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeInt.java @@ -1,4 +1,4 @@ -package ru.IP_LabWorks.IP.domain; +package ru.IP_LabWorks.IP.TypeCalculator.domain; public class TypeInt implements ITypeInterface { diff --git a/src/main/java/ru/IP_LabWorks/IP/domain/TypeString.java b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeString.java similarity index 92% rename from src/main/java/ru/IP_LabWorks/IP/domain/TypeString.java rename to src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeString.java index 5ff82d1..5e9a6f4 100644 --- a/src/main/java/ru/IP_LabWorks/IP/domain/TypeString.java +++ b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/domain/TypeString.java @@ -1,4 +1,4 @@ -package ru.IP_LabWorks.IP.domain; +package ru.IP_LabWorks.IP.TypeCalculator.domain; public class TypeString implements ITypeInterface { diff --git a/src/main/java/ru/IP_LabWorks/IP/service/TypeService.java b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/service/TypeService.java similarity index 93% rename from src/main/java/ru/IP_LabWorks/IP/service/TypeService.java rename to src/main/java/ru/IP_LabWorks/IP/TypeCalculator/service/TypeService.java index 9fc67c2..41a6f87 100644 --- a/src/main/java/ru/IP_LabWorks/IP/service/TypeService.java +++ b/src/main/java/ru/IP_LabWorks/IP/TypeCalculator/service/TypeService.java @@ -1,13 +1,10 @@ -package ru.IP_LabWorks.IP.service; +package ru.IP_LabWorks.IP.TypeCalculator.service; -import ru.IP_LabWorks.IP.domain.ITypeInterface; +import ru.IP_LabWorks.IP.TypeCalculator.domain.ITypeInterface; import org.springframework.stereotype.Service; import org.springframework.context.ApplicationContext; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; import java.util.stream.Collectors; @Service diff --git a/src/main/java/ru/IP_LabWorks/IP/University/Model/Group.java b/src/main/java/ru/IP_LabWorks/IP/University/Model/Group.java new file mode 100644 index 0000000..ba343f7 --- /dev/null +++ b/src/main/java/ru/IP_LabWorks/IP/University/Model/Group.java @@ -0,0 +1,12 @@ +package ru.IP_LabWorks.IP.University.Model; + +import jakarta.persistence.*; + +@Entity +@Table(name = "groups") +public class Group { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; +} diff --git a/src/main/java/ru/IP_LabWorks/IP/University/Model/Student.java b/src/main/java/ru/IP_LabWorks/IP/University/Model/Student.java new file mode 100644 index 0000000..4256c3c --- /dev/null +++ b/src/main/java/ru/IP_LabWorks/IP/University/Model/Student.java @@ -0,0 +1,39 @@ +package ru.IP_LabWorks.IP.University.Model; +import jakarta.persistence.*; + +import java.util.List; +import java.util.Objects; + +@Entity +@Table(name = "students") +public class Student { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + private Integer age; + @ManyToMany(cascade = CascadeType.ALL) + @JoinTable(name = "student_subject", + joinColumns = @JoinColumn(name = "student_id"), + inverseJoinColumns = @JoinColumn(name = "subject_id")) + private List subjects; + + public Student(String name, Integer age) { + this.name = name; + this.age = age; + } + + public Long getId() { return id; } + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public Integer getAge() { return age;} + public void setAge(Integer age) { this.age = age; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Student student = (Student) o; + return Objects.equals(id, student.id); + } +} diff --git a/src/main/java/ru/IP_LabWorks/IP/University/Model/Subject.java b/src/main/java/ru/IP_LabWorks/IP/University/Model/Subject.java new file mode 100644 index 0000000..f5c4091 --- /dev/null +++ b/src/main/java/ru/IP_LabWorks/IP/University/Model/Subject.java @@ -0,0 +1,33 @@ +package ru.IP_LabWorks.IP.University.Model; + +import jakarta.persistence.*; + +import java.util.List; +import java.util.Objects; + +@Entity +@Table(name = "subjects") +public class Subject { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + @ManyToMany(mappedBy = "subjects") + private List students; + + public Subject(String name) { + this.name = name; + } + + public Long getId() { return id; } + public String getName() { return name; } + public void setName(String name) { this.name = name; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Subject subject = (Subject) o; + return Objects.equals(id, subject.id); + } +} diff --git a/src/main/java/ru/IP_LabWorks/IP/University/Service/StudentService.java b/src/main/java/ru/IP_LabWorks/IP/University/Service/StudentService.java new file mode 100644 index 0000000..65f6b5a --- /dev/null +++ b/src/main/java/ru/IP_LabWorks/IP/University/Service/StudentService.java @@ -0,0 +1,4 @@ +package ru.IP_LabWorks.IP.University.Service; + +public class StudentService { +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b13789..da7b0b1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,11 @@ - +spring.main.banner-mode=off +#server.port=8080 +spring.datasource.url=jdbc:h2:file:./data +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password=password +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.hibernate.ddl-auto=update +spring.h2.console.enabled=true +spring.h2.console.settings.trace=false +spring.h2.console.settings.web-allow-others=false diff --git a/src/test/java/ru/IP_LabWorks/IP/IpApplicationTests.java b/src/test/java/ru/IP_LabWorks/IP/IpApplicationTests.java index fd8c835..aa8e3a9 100644 --- a/src/test/java/ru/IP_LabWorks/IP/IpApplicationTests.java +++ b/src/test/java/ru/IP_LabWorks/IP/IpApplicationTests.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import ru.IP_LabWorks.IP.service.TypeService; +import ru.IP_LabWorks.IP.TypeCalculator.service.TypeService; @SpringBootTest class IpApplicationTests {