Updating Data data using HTTP POST method is commonly used to Modifying or updating existing records or entities in the database. It’s another operation of Spring CRUD. Updating data typically involves retrieving an entity, modifying its properties, and saving it back to the database.
Http POST method used to store and read data from server example and implementation explained here
Http GET Method to retrive data from data base.
UPDATE (U): Create RESTFul api to read data from server then modify data which you want and finally we can save it back to the table.
Step 1: Create java file BookController.java and then put below code in controller, here we have created method call updateBook(), which is expecting BookVO in Request.
package com.techbug.techbug.controller; 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.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.techbug.techbug.service.BookService; import com.techbug.techbug.vo.BookVO; @RestController public class BookController { @Autowired private BookService bookService; @PostMapping(value = "/updatebook") public String updateBook(@RequestBody BookVO addBookRequest) { return bookService.updateBook(addBookRequest); } }
Step 2: Create java file BookService.java and define method updateBook(), As we have seen above for update process we need to read existing data if available then update it or else don’t do anything.
package com.techbug.techbug.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.techbug.techbug.entity.Book; import com.techbug.techbug.repository.BookRepository; import com.techbug.techbug.vo.BookVO; @Service public class BookService { @Autowired private BookRepository bookRepository; public String updateBook(BookVO addBookRequest) { Book book = new Book(); // Reading existing data from table book = bookRepository.findBookByCode(addBookRequest.getCode()); if(null != book) { // Updating data if record found book.setCode(addBookRequest.getCode()); book.setDescription(addBookRequest.getDescription()); book.setName(addBookRequest.getName()); bookRepository.save(book); return "Book Added Successfully !!"; }else { // else returning error message return "NO Book Found with given book code - "+addBookRequest.getCode(); } } }
Step 3: Create java interface or JPARepository to read data from database. Here we have created custom jpa query to read data based on code, JPA provides default method as well to read based on id such as findOne(), findById() any many more.
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import com.techbug.techbug.entity.Book; public interface BookRepository extends JpaRepository<Book, Long>{ @Query("select b from Book b where b.code=?1") public Book findBookByCode(String code); }
Step 4: Start your spring boot application now and hit the update rest end point.
First we will fetch all data from data base using read api.
Trying to update book info with not available code.
Trying to update First row now
Finally Pull all data to verify if update happen coorectly.
We can see now first row got update !! ..