Como configurar uma conexão com banco de dados no Spring Boot?
O Spring Boot facilita a configuração de conexões com bancos de dados relacionais como MySQL, PostgreSQL e H2. O framework usa o Spring Data JPA, que simplifica o acesso a dados e reduz a necessidade de escrever SQL manualmente.
1. Adicionando Dependências
No pom.xml
, adicione as dependências necessárias:
Para MySQL:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
Para PostgreSQL:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
Para H2 (banco de dados em memória para testes):
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
2. Configurando o application.properties
Para MySQL, configure as credenciais no application.properties
:
spring.datasource.url=jdbc:mysql://localhost:3306/meubanco
spring.datasource.username=root
spring.datasource.password=senha
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update
Para PostgreSQL:
spring.datasource.url=jdbc:postgresql://localhost:5432/meubanco
spring.datasource.username=postgres
spring.datasource.password=senha
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
Para H2, que roda em memória (usado para testes):
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
3. Criando uma Entidade e Repositório
Agora, crie uma entidade JPA para representar uma tabela no banco de dados:
import jakarta.persistence.*;
@Entity
@Table(name = "usuarios")
public class Usuario {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String email;
// Getters e Setters
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
}
Crie um repositório para manipular os dados no banco:
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UsuarioRepository extends JpaRepository<Usuario, Long> {
}
4. Criando um Controller para Testar a Conexão
Crie um Controller que permite salvar e buscar usuários:
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/usuarios")
public class UsuarioController {
private final UsuarioRepository usuarioRepository;
public UsuarioController(UsuarioRepository usuarioRepository) {
this.usuarioRepository = usuarioRepository;
}
@PostMapping
public Usuario criarUsuario(@RequestBody Usuario usuario) {
return usuarioRepository.save(usuario);
}
@GetMapping
public List<Usuario> listarUsuarios() {
return usuarioRepository.findAll();
}
}
5. Testando a Conexão
- Para inserir um usuário, envie uma requisição POST para
http://localhost:8080/usuarios
com o seguinte JSON:
{
"nome": "João Silva",
"email": "joao@email.com"
}
- Para listar os usuários cadastrados, faça uma requisição GET para
http://localhost:8080/usuarios
.
Conclusão
Configurar uma conexão com banco de dados no Spring Boot é simples e pode ser feita para MySQL, PostgreSQL ou H2 com poucos ajustes no application.properties
. Usando o Spring Data JPA, você consegue manipular registros sem escrever SQL manualmente.
Por que o Spring Boot facilita a conexão com bancos de dados?
O Spring Boot revolucionou a forma como aplicações Java se conectam a bancos de dados. Antes, era necessário configurar arquivos XML e escrever código repetitivo para gerenciar conexões. Com o Spring Data JPA, basta definir algumas configurações no application.properties
e a comunicação com o banco acontece automaticamente, facilitando o desenvolvimento e a escalabilidade das aplicações.
Algumas aplicações:
- Criação de aplicações empresariais com banco de dados
- Manipulação de registros com JPA e Hibernate
- Integração com bancos relacionais como MySQL e PostgreSQL
- Desenvolvimento de APIs REST conectadas a bases de dados
Dicas para quem está começando
- Para testar rapidamente, use o banco de dados H2
- Evite armazenar credenciais sensíveis no
application.properties
em produção - Use
spring.jpa.hibernate.ddl-auto=update
apenas em desenvolvimento - Para consultas personalizadas, use a anotação
@Query
no repositório
Contribuições de Rodrigo Farias