SpringBoot Example 1
Example 1:
FirstStsProjectApplication.java
package com.cit.FirstSTSProject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class FirstStsProjectApplication {
public static void main(String[] args) {
SpringApplication.run(FirstStsProjectApplication.class, args);
}
}
FirstController.java
package com.cit.FirstSTSProject.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class FirstController {
@RequestMapping("/test")
@ResponseBody
public String firstHandller() {
return "\n\n...This is Spring Boot using STS...\n\n";
}
}
Example 2:
FirstStsProjectforJspApplication .java
package com.cit.FirstSTSProject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class FirstStsProjectforJspApplication {
public static void main(String[] args) {
SpringApplication.run(FirstStsProjectforJspApplication.class, args);
}
}
MainController.java
package com.cit.FirstSTSProject.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MainController {
@RequestMapping("/home")
public String view() {
System.out.println("This is home page");
return "home";
}
@RequestMapping("/contact")
public String contact() {
System.out.println("This is contact page");
return "contact";
}
}
application.properties
spring.mvc.view.prefix=/views/
spring.mvc.view.suffix=.jsp
contact.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1> This is Contact page</h1>
</body>
</html>
home.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1> This is home page</h1>
</body>
</html>
Example 3
User.java
package com.cit.SpringBootJPAExample.entites;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
private String city;
private String status;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public User(int id, String name, String city, String status) {
super();
this.id = id;
this.name = name;
this.city = city;
this.status = status;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", city=" + city + ", status=" + status
+ "]";
}
UserRepository.java
package com.cit.SpringBootJPAExample.Dao;
import java.util.List;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import com.cit.SpringBootJPAExample.entites.User;
public interface UserRepository extends CrudRepository<User, Integer>{
//Custom Finder methods
//find - introducer, ByName - criteria using single property
public List<User> findByName(String name);
public List<User> findByCity(String city);
//By Name And City using multiple property
public List<User> findByNameAndCity(String name, String city);
//Executing JPQL Queries
@Query("select u from User u")
public List<User> getAllUser();
//parameterize query
@Query("select u from User u where u.name =:n")
public List<User> getAllUserByName(@Param("n") String name);
//Executing Native Queries
@Query(value = "select * from User", nativeQuery = true)
public List<User> getUserAll();
}
SpringBootJpaExampleApplication.java
package com.cit.SpringBootJPAExample;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import com.cit.SpringBootJPAExample.Dao.UserRepository;
import com.cit.SpringBootJPAExample.entites.User;
@SpringBootApplication
public class SpringBootJpaExampleApplication {
public static void main(String[] args) {
ApplicationContext context =
SpringApplication.run(SpringBootJpaExampleApplication.class, args);
UserRepository userRepository = context.getBean(UserRepository.class);
// CREATE
// Saving single user
/*
* User user = new User(); user.setName("Shreya"); user.setCity("Kolkata");
* user.setStatus("It is Python"); User userResult = userRepository.save(user);
* System.out.println(userResult);
*/
// Saving multiple objects
// User user1 = new User();
// user1.setName("Shreya");
// user1.setCity("Kolkata");
// user1.setStatus("It is Python");
//
// User user2 = new User();
// user2.setName("Hieu");
// user2.setCity("Ho Chi Minh");
// user2.setStatus("It is Java");
//
// List<User> users = List.of(user1,user2);
// Iterable<User> userResult = userRepository.saveAll(users);
//
// userResult.forEach(user->{
// System.out.println(user);
// });
//
// UPDATE
/*
* Optional<User> optinal = userRepository.findById(10); User user =
* optinal.get();
*
* user.setName("Trang"); user.setCity("Hanoi"); user.setStatus("It is Python");
* User userResult = userRepository.save(user); System.out.println(userResult);
*/
// READ
// findById() - returns optional containing your data
// Iterable<User> itr = userRepository.findAll();
/*
* Iterator<User> iterator = itr.iterator(); while(iterator.hasNext()) { User
* user = iterator.next(); System.out.println(user); }
*/
/*
* itr.forEach(new Consumer<User>() {
*
* @Override public void accept(User t) { System.out.println(t); }
*
* });
*/
// itr.forEach(user->{System.out.println(user);});
// DELETE
// deleting single element
/*
* userRepository.deleteById(10); System.out.println("Data Deleted");
*/
// deleting all elements
/*
* Iterable<User> allusers = userRepository.findAll();
* userRepository.deleteAll(allusers);
*/
//Derived Query Methods / Custom Finder methods
//using single property
/*
* List<User> userName = userRepository.findByName("Shreya");
* userName.forEach(user->System.out.println(user));
*/
//using multiple property
/*
* List<User> userName1 =
userRepository.findByNameAndCity("Shreya","Kolkata");
* userName1.forEach(user->System.out.println(user));
*/
//Executing JPQL Queries
/*
* List<User> allUser = userRepository.getAllUser();
* allUser.forEach(user->System.out.println(user));
*/
//parameterize query
/*
* List<User> allUser = userRepository.getAllUserByName("Shreya");
* allUser.forEach(user->System.out.println(user));
*/
//Executing Native Queries
List<User> allUser1 = userRepository.getUserAll();
allUser1.forEach(user->System.out.println(user));
}
application.properties
spring.datasource.name=test
spring.datasource.url=jdbc:mysql://localhost:3306/debarshi
spring.datasource.username=debarshi
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update
Example 4:
Book.java
package com.cit.SpringBootRestAPIFirst.entities;
public class Book {
private int bookId;
private String title;
private String author;
public Book(int bookId, String title, String author) {
super();
this.bookId = bookId;
this.title = title;
this.author = author;
}
public Book() {
super();
// TODO Auto-generated constructor stub
}
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
@Override
public String toString() {
return "Book [bookId=" + bookId + ", title=" + title + ", author=" + author + "]";
}
}
BookController.java
package com.cit.SpringBootRestAPIFirst.Contollers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.cit.SpringBootRestAPIFirst.Services.BookService;
import com.cit.SpringBootRestAPIFirst.entities.Book;
/*@Controller*/
@RestController
public class BookController {
/* @RequestMapping(value = "/books", method = RequestMethod.GET) */
/* @ResponseBody */
/*
* public String getBooks() { return "This is PostMan Testing"; }
*/
/*
* @GetMapping("/books") public Book getBooks() {
*
* Book book=new Book(); book.setBookId(101);
* book.setTitle("Advance Java Programming");
* book.setAuthor("Debarshi Mazumder");
*
* return book; }
*/
@Autowired
private BookService bookService;
//Get or Read single book handler
@GetMapping("/books")
public List<Book> getBooks() {
return this.bookService.getAllBooks();
}
//Get or Read all book handler
@GetMapping("/books/{id}")
public Book getBook(@PathVariable("id") int id) {
return this.bookService.getBookById(id);
}
//Create new book handler
@PostMapping("/books")
public Book addBook(@RequestBody Book book) {
Book bk = this.bookService.addBook(book);
System.out.println(bk);
return bk;
}
//Delete single book handler
@DeleteMapping("/books/{id}")
public void deleteBook(@PathVariable("id") int id) {
this.bookService.deleteBook(id);
}
//Updating book
@PutMapping("/books/{id}")
public Book updateBook(@RequestBody Book book, @PathVariable("id") int id) {
this.bookService.updateBook(book, id);
System.out.println(book);
return book;
}
}
BookService.java
package com.cit.SpringBootRestAPIFirst.Services;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.cit.SpringBootRestAPIFirst.Dao.BookRepository;
import com.cit.SpringBootRestAPIFirst.entities.Book;
@Component
public class BookService {
//@Autowired
//private BookRepository bookRepository;
private static List<Book> list = new ArrayList<>();
static {
list.add(new Book(102, "C++", "Hieu"));
list.add(new Book(103, "C#", "ABC"));
list.add(new Book(104, ".Net", "XYZ"));
public List<Book> getAllBooks() {
//List<Book> list =(List<Book>)this.bookRepository.findAll();
return list;
}
public Book getBookById(int bookId) {
Book book = null;
book = list.stream().filter(e -> e.getBookId() == bookId).findFirst().get();
//this.bookRepository.findById(bookId);
return book;
// Adding or creating the Book
public Book addBook(Book book) {
list.add(book);
//Book book1 = this.bookRepository.save(book);
return book;
}
// Deleting the Book
public void deleteBook(int id) {
list = list.stream().filter(book -> book.getBookId() !=
id).collect(Collectors.toList());
/*
* list = list.stream().filter(book->{ if(book.getBookId()!=id) { return true; }
* else { return false; }
*
* }).collect(Collectors.toList());
*/
//this.bookRepository.deleteById(id);
}
public void updateBook(Book book, int bookId) {
list = list.stream().map(b->{ if(b.getBookId()==bookId) {
b.setTitle(book.getTitle()); b.setAuthor(book.getAuthor()); } return b;
}).collect(Collectors.toList());
//book.setBookId(bookId);
//this.bookRepository.save(book);
}
}
SpringBootRestApiFirstApplication.java
package com.cit.SpringBootRestAPIFirst;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootRestApiFirstApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootRestApiFirstApplication.class, args);
}
application.properties
spring.datasource.name=test
spring.datasource.url=jdbc:mysql://localhost:3306/debarshi
spring.datasource.username=debarshi
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update