Connecting Spring Boot with databases - MySQL and Oracle
This guide will help you understand how to connect Spring Boot with databases like MySql and Oracle.
You will learn
- How to connect Spring Boot, JPA application with MySQL and Oracle?
- What should you configure in application.properties?
- How to setup the database schema?
Updating the Spring Boot Project Step By Step
Let’s look at the 5 steps involved in connecting a Spring Boot application to a database.
You can use the example we created earlier for connecting to H2 in memory database as the starting point for this article- http://www.springboottutorial.com/hibernate-jpa-tutorial-with-spring-boot-starter-jpa
Step 1 - Add dependency for your database connector to pom.xml
Example for MySQL is shown below.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
If you would want to connect to oracle database, you can use a dependency similar to the one shown below.
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.1</version>
</dependency>
Step 2 - Remove H2 Dependency from pom.xml
Or atleast make its scope as test
<!--
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
-->
Step 3 - Setup your My SQL Database
We would need to set up your database with a schema and the tables.
Step 4 - Configure your connection to Your Database
Configure application.properties to connect to your database.
An example for My SQL is shown below:
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/todo_example
spring.datasource.username=todouser
spring.datasource.password=YOUR_PASSWORD
spring.jpa.hibernate.ddl-auto
Spring Boot chooses a default value for this based on whether you are connecting to an embedded database or not.
- Embedded Databases - default create-drop
- Other Databases - default none
Here is a quick guide to all the options
- none : No action will be performed.
- create-only : Database creation will be generated from entities.
- drop : Database dropping will be generated from entities.
- create : Database dropping will be generated followed by database creation.
- validate : Validate entites with the database schema
- update : Update the database schema based on the entities
Step 5 - Restart and You are ready!
That’s it