Hello friends as we have already discussed in the previous chapter about how you in memory database or embedded database of Spring Boot like H2, HSQL etc. Out of the box, Spring Boot is very easy to use with the H2 or HSQL Database. If the HSQL database is found on your classpath, Spring Boot will automatically set up an in memory HSQL database for your use., I have used in-memory databases like HSQL for persisting data. But, these in-memory databases cannot be used for the production. These are only used for the development environment. But what if you want to use MySQL? Naturally, Spring Boot has support for MySQL and a number of other popular relational databases.
Let’s see we want to deploy this application to production and we’ve decided to use MySQL for the database. Changing Spring Boot from HSQL to MySQL is easy to do.
Maven Configurations for MySQL Dependencies
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
Here in the maven’s pom.xml, you just added mysql connector. Once this is added to the classpath, Spring Boot will automatically search for the MySQL configurations and use it.
You’ll need to have a database defined for your use. For this example, I want to create a database for my use. Using the command prompt, you can log into MySQL with this command:
mysql -u root
Use the following command to create a database.
CREATE DATABASE dojdb;
There are following property we have to add the application property file application.properties and also we have to install MySQL DB at your machine firstly and after that you can go ahead with MySQL configuration.
spring.datasource.url=jdbc:mysql://localhost:3306/dojdb spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver
If you are using ORM (Hibernate) with this application then we can add one more property in the file.
If this was actually a production database, you not tell Hibernate to use the create-drop option. This tells Hibernate to recreate the database on startup. Definitely not the behavior we want. You can set this property to the following values: none, validate, update, create-drop. If this was actually a production database, you probably would want to use validate.
This is all about how to use and configure MySQL database with Spring Boot application and discussed all that needs to be changed to use MySQL with Spring Boot. When you start the project now, MySQL will be used by the Spring Boot application for the database.
Happy Spring Boot Learning!!!