Connect SpringBoot with Mysql Database

Introduction

This document will help you to deploy a sample Spring Boot Application, using mysql Helm Chart

1. Deploy a mysql Helm Chart

To deploy mysql Helm Chart, you can refer to our documentation on Deploy mysql Helm Chart

2. Fork the Git Repository

For this example, we are using the following GitHub Repo, you can clone this repository and make following changes in the files.

*Configure application.properties

Set the database configuration in this file.

spring.datasource.url=jdbc:mysql://<service-name>/<mysql database-name>
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.datasource.username=<mysql-user>
spring.datasource.password=<mysql-password>
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.open-in-view=true

Configure the Dockerfile

# syntax=docker/dockerfile:experimental
FROM maven:3.5-jdk-8-alpine as build
WORKDIR /workspace/app

COPY pom.xml .

RUN mvn -B -e -C -T 1C org.apache.maven.plugins:maven-dependency-plugin:3.0.2:go-offline

COPY . .
RUN mvn clean package -Dmaven.test.skip=true


FROM openjdk:8-jdk-alpine
RUN addgroup -S demo && adduser -S demo -G demo
VOLUME /tmp
USER demo
ARG DEPENDENCY=/workspace/app/target/dependency
COPY --from=build /workspace/app/target/docker-demo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar", "app.jar"]

3. Create Application on Devtron

To learn how to create an application on Devtron, refer to our documentation on Creating Application

*Git Repository

In this example, we are using the url of the forked Git repository.

*Docker configuration

Give, the path of the Dockerfile.

**_Configure Deployment Template*_

Enable Ingress, and give the path on which you want to host the application.

*Set up the CI/CD Pipelines

Set up the CI/CD pipelines. You can set them to trigger automatically or manually.

*Trigger Pipelines

Trigger the CI Pipeline, build should be Successful. Then trigger the CD Pipeline, deployment pipeline will be initiated, after some time the status should be Healthy.

4. Final Step

*Test Rest API

It exposes 3 REST endpoints for it's users to create, to view specific student record and view all student records.

To test Rest API, you can use curl command line tool

Create a new Student Record

Create a new POST request to create a new Transaction. Once the transaction is successfully created, you will get the student id as a response.

Curl Request is as follows:

sudo curl -d '{"name": "Anushka", "marks": 98}' -H "Content-Type: application/json" -X POST http://<hostname>/<path-name>/create

View All Student's Data

To view all student records, GET Request is:

path will be the one that you have given in Step 3 while configuring the Deployment Template.

http://<hostname>/<path>/viewAll

View student's data By student ID

To view student data by student id, GET Request is:

http://<hostname>/<path>/view/<id>

path will be the one that you have given in Step 3 while configuring the Deployment Template.

Last updated