Appel Mahmud Akib
Appel Mahmud Akib

Reputation: 43

How to connect Spring Boot Application with MySQL database?

I am new at spring framework, I want to connect my MySQL database which located in localhost with spring boot application.

Upvotes: 4

Views: 22566

Answers (5)

Apu Pradhan
Apu Pradhan

Reputation: 111

application.properties

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/jpa
spring.datasource.username = root
spring.datasource.password =
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

build.gradle

implementation 'mysql:mysql-connector-java:8.0.15'

Upvotes: 1

Vikrant Kashyap
Vikrant Kashyap

Reputation: 6876

To connect with mysql need some dependencies as below

Dependencies (maven -> pom.xml).

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
  </dependency>
</dependencies>

in application.properties need some extra configuration setting which must like like

application.properties (src/main/resources/application.properties)

# DataSource settings: set here your own configurations for the database 
# connection. In this example we have "netgloo_blog" as database name and 
# "root" as username and password.
spring.datasource.url = jdbc:mysql://localhost:8889/database_name
spring.datasource.username = mysql-userId
spring.datasource.password = mysql-pwd

# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

# Show or not log for each sql query
spring.jpa.show-sql = true

# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update

# Naming strategy (Not necessary to add but you can use this too)
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

# Use spring.jpa.properties.* for Hibernate native properties (the prefix is
# stripped before adding them to the entity manager)

# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

Now your EntityManager Object will be constructed when you starts your spring boot Configuration.

Above defined configuration is enough to connect your local my-sql database but here is some more configuration that you need to make your code more readable.

Enable JPARepositories such that CRUD Repositories must defined in a defined package.

Add @EnableJPARepositories("basepackage.*") to your SpringBootMainApplicationClass like this..

@SpringBootApplication
@EnableJPARepositories("com.demo.application.*.repositories")
@ComponentScan("com.demo.application.*")
public class SpringBootMainApplicationClass {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootMainApplicationClass.class, args);
    }
}

by adding @EnableJPARepositories Annotation in MainClass enables user to make your code more readable and EntityManager Object only restricted to only defined package.

Upvotes: 1

jahnavi thacker
jahnavi thacker

Reputation: 1

Add below dependencies in pom.xml.

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
</dependency>

Add below database properties in application.properties.

spring.datasource.url=jdbc:mysql://localhost:3306/dbname
spring.datasource.username=root
spring.datasource.password=root

For more details please refer this link

Upvotes: 0

Jonathan JOhx
Jonathan JOhx

Reputation: 5978

You need to add database configuration properties for Mysql in your application.properties:

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=mysql
spring.datasource.password=mysql
  1. spring.jpa.hibernate.ddl-auto=create this configuration will create tables based on your entities which were created by you.
  2. spring.datasource.url=jdbc:mysql://localhost:3306/db_example this configuration connects through jdbc to your database called db_example. You need to create that database.
  3. spring.datasource.username=mysql this configuration you need to put your user who will connect via jdbc to your mysql database.
  4. spring.datasource.password=mysql this configuration you need to provide your password which is represented by your user in order to connect through jdbc to your mysql database.

In addition tou you need to add dependencies for Mysql and JPA.

  • If you are using maven, add the dependencies in your pom.xml:

    <dependencies>
        <!-- JPA Data (We are going to use Repositories, Entities, Hibernate, etc...) -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
    
        <!-- Use MySQL Connector-J -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>
    
  • If you are using gradle, add the dependencies in build.gradle:

    dependencies {
        // JPA Data (We are going to use Repositories, Entities, Hibernate, etc...)
        compile 'org.springframework.boot:spring-boot-starter-data-jpa'
    
        // Use MySQL Connector-J
        compile 'mysql:mysql-connector-java' 
    }
    

Upvotes: 0

Kumar Ashutosh
Kumar Ashutosh

Reputation: 1254

I'm listing out the minimal configuration:

In pom.xml

<!-- JPA Data (We are going to use Repositories, Entities, Hibernate, etc...) -->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <!-- Use MySQL Connector-J -->

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

In application.properties

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword

You can get such examples everywhere. Prefer to read https://spring.io/guides/gs/accessing-data-mysql/

Source : https://spring.io

Checkout other questions too :

How to use Spring Boot with MySQL database and JPA?

Spring Boot MYSQL connection

Spring boot - MySQL settings are not working

Upvotes: 1

Related Questions