DEV Community

realNameHidden
realNameHidden

Posted on

Connecting Google Cloud SQL into your Spring Boot

go to gcp

select sql service


step 2 :


choose mysql

give instance name

and password

public ip address of the cloud sql instance

we have to use this in mysql jdbc url instead of localhost:port

ex: jdbc:mysql://{public ip}/new

create new schema


open cloudshell

get the ip of your cloudshell


inside new network


search you ip

same as you added cloudshell ip add your local machine ip

create spring boot project


Directory Structure

application.properties

spring.datasource.url=jdbc:mysql://{sql instance ip}/new
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update

Enter fullscreen mode Exit fullscreen mode

Employee

package com.example.demo.entity;



import jakarta.persistence.Entity;

import jakarta.persistence.GeneratedValue;

import jakarta.persistence.GenerationType;

import jakarta.persistence.Id;

import jakarta.persistence.Table;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "emptab")
public class Employee {

 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Integer id;

 private String name;
 public Employee(String name) {
  super();
  this.name = name;
 }
}

Enter fullscreen mode Exit fullscreen mode

EmployeeRepository

package com.example.demo.repo;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.entity.Employee;
public interface EmployeeRepository extends JpaRepository<Employee, Integer>{

}

Enter fullscreen mode Exit fullscreen mode

TestRunner

package com.example.demo.runner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import com.example.demo.entity.Employee;
import com.example.demo.repo.EmployeeRepository;

@Component
public class TestRunner implements CommandLineRunner{

 @Autowired
 private EmployeeRepository erepo;

 @Override
 public void run(String... args) throws Exception {

  //create the emp object
  Employee emp = new Employee("sam");
  //save the object
  erepo.save(emp);
 }
}

Enter fullscreen mode Exit fullscreen mode

on cloudshell

Top comments (0)