0% found this document useful (0 votes)
31 views7 pages

Mongodbinspringjh

Hh

Uploaded by

justinjaveed901
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views7 pages

Mongodbinspringjh

Hh

Uploaded by

justinjaveed901
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

package controller

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 {

public static void main(String[] args) {


SpringApplication.run(SpringinmongodbApplication.class, args);
}

}
package entity
1.Department.java

package com.example.springinmongodb.entity;
import org.springframework.data.mongodb.core.mapping.Field;

public class Department {


@Field(name = "department_name")
private String departmentName;

private String location;

public String getDepartmentName() {


return departmentName;
}

public void setDepartmentName(String departmentName) {


this.departmentName = departmentName;
}

public String getLocation() {


return location;
}

public void setLocation(String location) {


this.location = location;
}
}

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;

private String name;

@Field(name = "mail")
private String email;

private Department department;

private List<Subject> subjects;

@Transient
private double percentage;
public String getId() {
return id;
}

public void setId(String id) {


this.id = id;
}

public String getName() {


return name;
}

public void setName(String name) {


this.name = name;
}

public String getEmail() {


return email;
}

public void setEmail(String email) {


this.email = email;
}

public Department getDepartment() {


return department;
}

public void setDepartment(Department department) {


this.department = department;
}

public List<Subject> getSubjects() {


return subjects;
}

public void setSubjects(List<Subject> subjects) {


this.subjects = subjects;
}

public double getPercentage() {


if (subjects != null && !subjects.isEmpty()) {
int total = 0;
for (Subject subject : subjects) {
total += subject.getMarksObtained();
}
return total / (double) subjects.size();
}
return 0.00;
}

public void setPercentage(double percentage) {


this.percentage = percentage;
}
}

3.Subject.java
package com.example.springinmongodb.entity;

import org.springframework.data.mongodb.core.mapping.Field;

public class Subject {


@Field(name = "Subject_name")
private String subjectName;

@Field(name = "marks_Obtained")
private int marksObtained;

public String getSubjectName() {


return subjectName;
}

public void setSubjectName(String subjectName) {


this.subjectName = subjectName;
}

public int getMarksObtained() {


return marksObtained;
}

public void setMarksObtained(int marksObtained) {


this.marksObtained = 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);

Student findByEmailAndName(String email,String name);

Student findByNameOrEmail(String name, String email);

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;

public Student createStudent(Student student) {


return studentRepository.save(student);
}

public Student getStudentById(String id) {


Optional<Student> studentOptional = studentRepository.findById(id);
return studentOptional.orElse(null); // Return null or handle as
appropriate
}

public List<Student> getAllStudents() {


return studentRepository.findAll();
}

public Student updateStudent(Student student) {


return studentRepository.save(student);
}

public String deleteStudent(String id) {


studentRepository.deleteById(id);
return "Student has been deleted";
}

public List<Student> getStudentByName(String name) {


return studentRepository.findByName(name);
}

public Student studentByNameAndMail(String name, String email) {


return studentRepository.findByEmailAndName(email, name);
}

public Student studentsByNameOrMail(String name, String email) {


return studentRepository.findByNameOrEmail(name, email);
}
public List<Student> getAllWithPagination(int pageNo, int pageSize) {
Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
return studentRepository.findAll(pageable).getContent(); // Corrected this
line
}

public List<Student> allWithSorting() {


Sort sort = Sort.by(Sort.Direction.ASC, "name", "email");
return studentRepository.findAll(sort);
}

public List<Student> byDepartmentName(String deptName) {


return studentRepository.findByDepartmentName(deptName);
}

public List<Student> bySubjectName(String subName) {


return studentRepository.findBySubjectsSubjectName(subName);
}

public List<Student> emailLike(String email) {


return studentRepository.findByEmailIsLike(email);
}

public List<Student> nameStartsWith(String name) {


return studentRepository.findByNameStartsWith(name);
}
}

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

You might also like