Spring Boot Integration With MySQL as a Maven Project
Spring Boot is trending and it is an extension of the spring framework but it reduces the huge configuration settings that need to be set in a spring framework. In terms of dependencies, it reduces a lot and minimized the dependency add-ons. It extends maximum support to all RDBMS databases like MySQL and NoSQL databases like MongoDB. In this article let us see a sample project connecting Spring Boot and MySQL.
Implementation
Project Structure:
This is a maven project
pom.xml
XML
<? xml version = "1.0" encoding = "UTF-8" ?>
< modelVersion >4.0.0</ modelVersion >
< parent >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-parent</ artifactId >
< version >2.7.0</ version >
< relativePath />
</ parent >
< groupId >com.gfg</ groupId >
< artifactId >springboot_mysql_project</ artifactId >
< version >0.0.1-SNAPSHOT</ version >
< name >springboot_mysql_project</ name >
< description >Demo project for Spring Boot with MySQL</ description >
< properties >
< java.version >1.8</ java.version >
</ properties >
< dependencies >
< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-data-jpa</ artifactId >
</ dependency >
< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-web</ artifactId >
</ dependency >
< dependency >
< groupId >mysql</ groupId >
< artifactId >mysql-connector-java</ artifactId >
< scope >runtime</ scope >
</ dependency >
< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-test</ artifactId >
< scope >test</ scope >
</ dependency >
</ dependencies >
< build >
< plugins >
< plugin >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-maven-plugin</ artifactId >
</ plugin >
</ plugins >
</ build >
</ project >
|
The important file that helps to tell about MySQL connectivity information
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/geeksforgeeks?serverTimezone=UTC&useSSL=false&autoReconnect=true
spring.datasource.username=****#Specify the proper user name
spring.datasource.password=****#Specify the proper password then only the application can be connected with MySQL
Spring boot can be run as Java application, which means there should be the main class
SampleAccessingOfMysqlApplication.java
Java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SampleAccessingOfMysqlApplication {
public static void main(String[] args) {
SpringApplication.run(SampleAccessingOfMysqlApplication. class , args);
}
}
|
Let us start with the bean class
Book.java
Java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Book {
@Id
@GeneratedValue (strategy=GenerationType.AUTO)
private Integer id;
private String bookName;
private String isbnNumber;
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this .bookName = bookName;
}
public String getIsbnNumber() {
return isbnNumber;
}
public void setIsbnNumber(String isbnNumber) {
this .isbnNumber = isbnNumber;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this .id = id;
}
}
|
BookRepository.java
Java
package com.gfg;
import org.springframework.data.repository.CrudRepository;
public interface BookRepository extends CrudRepository<Book, Integer> {
}
|
BookController.java
Java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping (path= "/geek" )
public class BookController {
@Autowired
private BookRepository bookRepository;
@PostMapping (path= "/addbook" )
public @ResponseBody String addBooks ( @RequestParam String bookName
, @RequestParam String isbnNumber) {
Book book = new Book();
book.setBookName(bookName);
book.setIsbnNumber(isbnNumber);
bookRepository.save(book);
return "Details got Saved" ;
}
@GetMapping (path= "/books" )
public @ResponseBody Iterable<Book> getAllUsers() {
return bookRepository.findAll();
}
}
|
The application can be run as follows :
Console Output:
Now we can run and see the following. As we are entering the book details via POST, let us use the Postman client to execute the same
http://localhost:8080/geek/addbook
--Note : In the controller, it has been given that all urls should have geek as pattern
and after that 'addbook' is the mapping that helps to add the books to the table named 'book'.
As in application.properties,
spring.jpa.hibernate.ddl-auto=update
is available, if there is no table named 'book' is present, it is automatically created
We can check the same by executing the below URL
http://localhost:8080/geek/books
Similarly, we can add the books we want and can add
Let us check the same in MySQL as well
So it is easier to connect MySQL and Spring Boot. Efficiently we can integrate spring boot and MySQL as in the above sample project.
Last Updated :
09 Oct, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...