DEV Community

loizenai
loizenai

Posted on

3 1

SpringBoot + React + MariaDB CRUD Example

SpringBoot + React + MariaDB CRUD Example

https://loizenai.com/springboot-react-crud-mariadb/

In the tutorial, I introduce how to build an “SpringBoot React.js CRUD MariaDB Example” project with the help of SpringData JPA for POST/GET/PUT/DELETE requests with step by step coding examples:

– SpringBoot project produces CRUD RestAPIs with MariaDB database using the supporting of Spring Data JPA.
– React.js project will consume the SpringBoot CRUD RestAPIs by Ajax then show up on Reactjs component’s views.

Related posts:


– I draw a fullstack overview Diagram Architecture from React.js Frontend to MariaDB database through SpringBoot RestAPI backend.
– Develop SpringBoot CRUD RestAPIs with the supporting of SpringWeb Framework.
– Implement Reactjs CRUD application with Ajax fetching APIs to do CRUD request (Post/Get/Put/Delete) to SpringBoot Backend APIs.
– I create a testsuite with a number of integrative testcases with CRUD RestAPI requests from Reactjs to do CRUD requests to SpringBoot RestAPIs Server and save/retrieve data to MariaDB database.

Overview Diagram Architecture - SpringBoot React MariaDB (SpringBoot Reactjs CRUD Example)

Overall Architecture System: Reactjs + SpringBoot + MariaDB

[caption id="attachment_5036" align="alignnone" width="653"]React.js-SpringBoot-MSSQL-Diagram-Architecture React.js-SpringBoot-MSSQL-Diagram-Architecture[/caption]

  • We build a backend: SpringBoot CRUD Application with MariaDB that provides RestAPIs for POST/GET/PUT/DELETE data entities and store them in MariaDB database.
  • We implement React.js CRUD Application that use Ajax to interact (call/receive requests) with SpringBoot CRUD application and display corresponding data in Reactjs Component.

SpringBoot MariaDB CRUD Design Application

[caption id="attachment_5037" align="alignnone" width="614"]SpringBoot-MSSQL-CRUD-RestAPI-Fullstack-Diagram-Architecture SpringBoot-MSSQL-CRUD-RestAPI-Fullstack-Diagram-Architecture[/caption]

I build a SpringBoot project that handle all Post/Get/Put/Delete requests from RestClient and do CRUD operations to MariaDB database to save/retrieve/update and delete entity from MariaDB and returns back to Restclient the corresponding messages.

We build a SpringBoot project with 2 layers:
– SpringJPA Repository is used to interact with MariaDB database by a set of CRUD operations.
– RestController layer is a web layer for SpringBoot project, it will directly handle all incomming requests and do the corressponding responses to the calling client.

Reactjs CRUD Application Design

[caption id="attachment_3805" align="alignnone" width="691"]Reactjs CRUD RestAPI Application Frontend Architecture Diagram Reactjs CRUD RestAPI Application Frontend Architecture Diagram[/caption]

– Reactjs CRUD Application is designed with 2 main layers:

  • React.js components let you split the UI into independent, reusable pieces, and think about each piece in isolation.
  • Ajax is used by Reactjs component to fetch (post/put/get/delete) data from remote restapi by http request

Reactjs CRUD Application defines 5 components:

  • Home.js is used serve as the landing page for your app.
  • AppNavbar.js is used to establish a common UI feature between components.
  • CustomerList.js is used to show all customers in the web-page
  • CustomerEdit.js is used to modify the existed customer
  • App.js uses React Router to navigate between components.

Integrative Project Goal

Reactjs Home page:

[caption id="attachment_3806" align="alignnone" width="481"]Project Goal - Home Page Project Goal - Home Page[/caption]

Reactjs add data:

[caption id="attachment_3807" align="alignnone" width="518"]Project Goal - Add a Customer Project Goal - Add a Customer[/caption]

Reactjs List all data:

[caption id="attachment_3808" align="alignnone" width="810"]Project Goal - Customer List Project Goal - Customer List[/caption]

Reactjs update data:

[caption id="attachment_3809" align="alignnone" width="524"]Project Goal - Update Customer Project Goal - Update Customer[/caption]

Reactjs delete data:

-> Delete a customer Adam with id=2, after successfully, check the customer list again:

[caption id="attachment_3810" align="alignnone" width="759"]Project Goal - List Customer after Delete successfully Project Goal - List Customer after Delete successfully[/caption]

Check MariaDB Database after do CRUD operations:

[caption id="attachment_3811" align="alignnone" width="805"]Check MariaDB records after do CRUD operation Check MariaDB records after do CRUD operation[/caption]

How to Integrate Reactjs with SpringBoot?

For starting to integrate Reactjs with SpringBoot project, I recommend you a previous post with detail steps to pratice:

How to Integrate Reactjs with SpringBoot Tutorial

[caption id="attachment_3818" align="alignnone" width="686"]React project structure React project structure[/caption]

[caption id="attachment_3819" align="alignnone" width="508"]SpringBoot integrate with Reactjs Production Build SpringBoot integrate with Reactjs Production Build[/caption]

[caption id="attachment_3820" align="alignnone" width="800"]SpringBoot Get RestAPI SpringBoot Get RestAPI[/caption]

SpringBoot MariaDB CRUD RestAPIs Example – Backend Development

Now it’s time for building the "SpringBoot MariaDB CRUD RestAPIs Example" project with a set of simple steps:

  • Create SpringBoot project
  • Configure MariaDB Database
  • Define SpringData JPA Entity Model
  • Define SpringBoot JPA Repository
  • Implement SpringBoot Controller CRUD RestAPIs

Let’s go!

How to build SpringBoot MariaDB CRUD RestAPI project

Create SpringBoot MariaDB project

We use SpringToolSuite to create a simple SpringBoot project with below structure:

[caption id="attachment_3821" align="alignnone" width="542"]SpringBoot project structure SpringBoot project structure[/caption]

  • application.properties is used to add the SpringBoot application's configurations such as: database configuration (MongoDB, MariaDB, MariaDB), threadpool, Hibernate, JPA ...
  • repository package is used to define a SpringBoot JPA repository to do CRUD operations with MariaDB
  • controller package is used to implement a SpringBoot RestAPI controller to handle all incomming requests (post/get/put/delete) and response to rest-client.
  • model package is used to define a JPA entity model that maps with the record's format in MariaDB database

For handling the web-request and doing CRUD operations with MariaDB database, we need the supporting of 3 SpringBoot dependencies: spring-boot-starter-web and spring-boot-starter-data-jpa, postgresql. So adding it to pom.xml file:

More at:

SpringBoot + React + MariaDB CRUD Example

https://loizenai.com/springboot-react-crud-mariadb/

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay