Reputation: 43
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
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
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
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
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
spring.jpa.hibernate.ddl-auto=create
this configuration will create tables based on your entities which were created by you.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.spring.datasource.username=mysql
this configuration you need to put your user who will connect via jdbc to your mysql database.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
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 settings are not working
Upvotes: 1