Mongodbinspringjh
Mongodbinspringjh
Mongodbinspringjh
StudentController.java
package com.example.springinmongodb.controller;
import com.example.springinmongodb.entity.Student;
import com.example.springinmongodb.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/student")
public class StudentController {
@Autowired
StudentService studentService;
@PostMapping("/create")
public Student createStudent(@RequestBody Student student){
return studentService.createStudent(student);
}
@GetMapping("/getById/{id}")
public Student getStudentById(@PathVariable String id){
return studentService.getStudentById(id);
}
@GetMapping("/all")
public List<Student>getAllStudents(@RequestBody Student student){
return studentService.getAllStudents();
}
@PutMapping("/update")
public Student updateStudent(@RequestBody Student student){
return studentService.updateStudent(student);
}
@DeleteMapping("/delete/{id}")
public String deleteStudent(@PathVariable String id) {
studentService.deleteStudent(id);
return "Deleted";
}
@GetMapping("/studentsByName/{name}")
public List<Student>studentsByName(@PathVariable String name){
return studentService.getStudentByName(name);
}
@GetMapping("/studentsByNameAndMail")
public Student studentsByNameAndMail(@RequestParam String name,@RequestParam
String email){
return studentService.studentsByNameOrMail(name,email);
}
@GetMapping("/studentsByNameOrMail")
public Student studentsByNameOrMail(@RequestParam String name,@RequestParam
String email){
return studentService.studentsByNameOrMail(name,email);
}
@GetMapping("/allWithPagination")
public List<Student>getAllWithPagination(@RequestParam int pageNo,@RequestParam
int pageSize){
return studentService.getAllWithPagination(pageNo,pageSize);
}
@GetMapping("/allWithSorting")
public List<Student>allWithSorting(){
return studentService.allWithSorting();
}
@GetMapping("/byDepartmentName")
public List<Student>byDepartmentName(@RequestParam String deptName){
return studentService.byDepartmentName(deptName);
}
@GetMapping("/bySubjectName")
public List<Student>bySubjectName(@RequestParam String subName){
return studentService.bySubjectName(subName);
}
@GetMapping("/emailLike")
public List<Student>emailLike(@RequestParam String email){
return studentService.emailLike(email);
}
@GetMapping("/nameStartsWith")
public List<Student>nameStartsWith(@RequestParam String name){
return studentService.nameStartsWith(name);
}
}
package demo
SringinmongodbApplication
package com.example.springinmongodb.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
@SpringBootApplication
@EnableMongoRepositories("com.example.repository")
@ComponentScan("com.example.*")
public class SpringinmongodbApplication {
}
package entity
1.Department.java
package com.example.springinmongodb.entity;
import org.springframework.data.mongodb.core.mapping.Field;
2.Student.java
package com.example.springinmongodb.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import java.util.List;
@Document(collection = "student")
public class Student {
@Id
private String id;
@Field(name = "mail")
private String email;
@Transient
private double percentage;
public String getId() {
return id;
}
3.Subject.java
package com.example.springinmongodb.entity;
import org.springframework.data.mongodb.core.mapping.Field;
@Field(name = "marks_Obtained")
private int marksObtained;
package repository
StudentRepository.interface
package com.example.springinmongodb.repository;
import com.example.springinmongodb.entity.Student;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface StudentRepository extends MongoRepository<Student,String> {
List<Student>findByName(String name);
List<Student>findByDepartmentName(String department);
List<Student>findBySubjectsSubjectName(String subName);
List<Student>findByEmailIsLike(String email);
List<Student>findByNameStartsWith(String name);
}
package service
StudentService.java
package com.example.springinmongodb.service;
import com.example.springinmongodb.entity.Student;
import com.example.springinmongodb.repository.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class StudentService {
@Autowired
private StudentRepository studentRepository;
application.properties
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=spring_mongo
spring.data.mongodb.username=sam
spring.data.mongodb.password=sam2007