Persistencia

HSQLDB

Utilizando HSQLDB em sua aplicação Java
Se tiver dúvida sobre os recursos do Maven apresentados nesta vídeo-aula, acesse o link.

Persistência em arquivo - HSQLDB

O HSQLDB (HyperSQL DataBase) é um sistema de gerenciamento de banco de dados relacional (SGBD) escrito em Java. Ele é leve e pode ser usado em ambientes embarcados ou de desenvolvimento, com suporte a SQL completo. Ele é projetado para ser simples de usar, com uma pequena pegada de memória e rápido, sendo ideal para aplicações pequenas ou para testes e desenvolvimento de protótipos.

Dependências necessárias

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

<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency>

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
</dependency>
Se quiser habilitar o log de todo sql executado em seu console, basta adicionar estas propriedades em seu resouces/application.properties.
resources/application.properties
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

Persistência em arquivo

resources/application.properties
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.dialect=org.hibernate.dialect.HSQLDialect
spring.jpa.database=HSQL
spring.jpa.show-sql=true
spring.hsql.console.enabled=true

spring.datasource.url=jdbc:hsqldb:file:db/iza-crm-db
spring.datasource.username=sa
spring.datasource.password=sa
spring.datasource.driverClassName=org.hsqldb.jdbcDriver

Características principais do HSQLDB incluem:

  1. Modo em memória: Ele pode operar totalmente em memória, o que significa que os dados não são armazenados em disco, proporcionando maior desempenho para operações rápidas, mas sem persistência após o desligamento do programa.
  2. Modo persistente: Também pode operar de maneira persistente, gravando os dados em arquivos no disco rígido, como outros bancos de dados relacionais tradicionais.
  3. Compatibilidade com SQL: O HSQLDB é compatível com o padrão SQL, o que o torna fácil de integrar com outras ferramentas que utilizam esse tipo de banco de dados.
  4. Suporte a transações e controle de concorrência: Oferece suporte a transações ACID (Atomicidade, Consistência, Isolamento e Durabilidade) e a controle de concorrência.
  5. Leve e rápido: Seu foco é na simplicidade, rapidez e baixo consumo de recursos.

O HSQLDB é comumente usado em aplicações Java, especialmente quando o objetivo é ter um banco de dados simples, rápido e que não exija muitos recursos. É bastante popular no contexto de protótipos, testes ou para pequenas aplicações que não exigem bancos de dados mais pesados.