English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring Data é um projeto de nível superior do Spring Source. Seu objetivo é unificar e facilitar o acesso a diferentes tipos de armazenamento persistente, como sistemas de banco de dados relacionais e armazenamentos NoSQL.
Ao implementar uma nova aplicação, devemos nos concentrar na lógica de negócios em vez de complexidades técnicas e códigos de exemplo. Por isso, a especificação Java Persistence API (JPA) e o Spring Data JPA são tão populares.
Spring Data JPA adiciona uma camada sobre o JPA. Isso significa que o Spring Data JPA utiliza todas as funcionalidades definidas pelo padrão JPA, especialmente as entidades, mapeamentos de associações e funcionalidades de consulta do JPA. O Spring Data JPA adiciona suas próprias funcionalidades, como a implementação sem código do padrão de repositório e a criação de consultas de banco de dados a partir do nome do método.
Spring Data JPA lida com a complexidade da maioria das operações de acesso a dados baseadas em JDBC e ORM (mapeamento objeto-relacionamento). Ele reduz o código de amostra necessário para JPA.
O Spring Data JPA visa melhorar a implementação da camada de acesso a dados, reduzindo o trabalho necessário.
Spring Data JPA tem trêsPrincipais funcionalidades, conforme mostrado:
Repositório sem código: Este é o padrão mais popular relacionado à persistência. Ele nos permite implementar código de negócios em um nível de abstração mais alto. Código de amostra simplificado: Ele fornece uma implementação padrão para cada método através de sua interface de repositório. Isso significa que não há mais necessidade de implementar operações de leitura e escrita. geradas pelo nome do método: Outra funcionalidade do Spring Data JPA é gerar consultasgerar consultas de banco de dados。Se a consulta não for muito complexa, é necessário definir um no findBy definindo métodos cujos nomes começam com. Após definir o método, a Spring analisa o nome do método e cria uma consulta para ele. Por exemplo:
public interface EmployeeRepository extends CrudRepository<Employee, Long> { Employee findByName(String name); }
No exemplo acima, estendemos o uso de dois genéricos CrudRepository : Employee e Long 。Employee é o que deve ser gerenciado entidade,e Long é o tipo de dados do primário
A Spring gerará internamente JPQL (Linguagem de consulta persistente Java) Consulta baseada no nome do método. A consulta é derivada da assinatura do método. Ela define valores de parâmetros ligados, executa a consulta e retorna os resultados.
Existem outras funcionalidades, conforme mostrado:
Ele pode integrar código de repositório personalizado. Este é um repositório poderoso e uma abstração de mapeamento de objetos personalizados. Ele suporta auditoria transparente. Ele implementa classes base de domínio que fornecem atributos básicos. Ele suporta múltiplos módulos, por exemplo, Spring Data JPA, Spring Data MongoDB, Spring Data REST, Spring Data Cassandra, etc.
Spring Data JPA oferece trêsarmazenamento, conforme mostrado:
CrudRepository: : Ele fornece padrõescriar, ler, atualizareexcluir。Ele contém itens como findOne(),findAll( ),save(),delete(),etc. PagingAndSortingRepository : Ele expande CrudRepository 并添加了findAll方法。它使我们能够以分页方式CrudRepositoryee adiciona o método findAll. Isso nos permite fazer buscas paginadasordenação retrieval JpaRepository : Isso é umrepositórios específicos do JPA ,que está Spring Data Jpa definido. Ele estende os repositórios CrudRepository e PagingAndSortingRepository. Ele adiciona métodos específicos do JPA, comoflush()
起)。 ,para acionar atualizações no contexto de persistência./<groupId>org.springframework.boot< <groupId>-data-<artifactId>spring/jpa< <artifactId>2<version>2<version>3./.RELEASE< </version>
SpringBoot Starter Data JPA spring-boot-starter-data-jpa O Spring Boot oferece-boot-starter-data-dependências para conectar efetivamente aplicativos Spring com bancos de dados relacionais. spring-boot-jpa usa internamente o spring1<version>5<version>3jpa dependência (desde a versão do Spring Boot
起)。 <dependency>/<groupId>org.springframework.boot< <groupId>-boot-starter-data-<artifactId>spring/jpa< <artifactId>2<version>2<version>2./.RELEASE< </version>
dependency>/O design de banco de dados é feito com tabelas
Antes do JPA, o termo ORM era mais comumente usado para se referir a esses frameworks. É por isso que o Hibernate é chamado de framework ORM.
O JPA permite que possamos mapear classes de aplicação para tabelas no banco de dados.
Gerenciador de entidades: : Após definir o mapeamento, ele se encarrega de todas as interações com o banco de dados. JPQL (Java Persistence Query Language): Ele oferece um método para escrever consultas para executar buscas em entidades. Diferente das consultas SQL. As consultas JPQL já entendem o mapeamento definido entre as entidades. Se necessário, podemos adicionar outras condições. API padrão : Ele define uma API baseada em Java para executar buscas no banco de dados.
Hibernate é uma implementação do JPA. É a framework de ORM mais popular, enquanto o JPA é a API que define os padrões. O Hibernate entende o mapeamento que adicionamos entre os objetos e as tabelas. Ele garante que a recuperação dos dados do banco de dados seja baseada no mapeamento./para armazenar dados. Ele também oferece outras funcionalidades no topo do JPA.
Neste exemplo, usaremos o Spring-boot-starter-data- jpa依赖关系来创建与H2数据库的连接。
Passos1: 打开spring Initializr https://start.spring.io/。
Passos2: 提供 组名称。我们提供了 com.w3codebox 。
Passos3: 提供 工件 ID。我们提供了 spring-boot-jpa-example。
Passos4: 添加依赖项: Spring Web,Spring Data JPA,e H2Banco de dados.
Passos5: Clique no 生成按钮。当我们单击"生成"按钮时,它会将项目包装在 Jar 文件中,并将其下载到本地系统。
Passos6: 提取 Jar文件并将其粘贴到STS工作区中。
Passos7: 将项目文件夹导入STS。
文件->导入->现有Maven项目->浏览->选择文件夹spring-boot-jpa-example->Concluído
导入需要一些时间。
Passos8: 创建一个名为 com.w3codebox.controller 的程序包在步骤 src/main/java 中。
Passos9: 在控制台中创建一个名称为 ControllerDemo 的Controller类。软件包 com.w3codebox.controller 。
ControllerDemo.java
package com.w3codebox.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ControllerDemo { @RequestMapping("/") public String home() { return "home.jsp"; } }
Passos10: 在文件夹 src/main/java中创建另一个名为 com.w3codebox.model 的软件包。
User. Java
package com.w3codebox.model; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="userdata") public class User { @Id private int id; private String username; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUname() { return username; } public void setUname(String username) { this.username = username; } @Override public String toString() { return "User [id=" + id + ", uname=" + username + "]"; } }
Agora, precisamos configurar o H2Banco de dados.
Passos12: Abra application.properties Abra o arquivo e configure o seguinte conteúdo: Porta, Ativar H2Console, Fonte de dados,e URL.
application.properties
server.port=8085 spring.h2.console.enabled=true spring.datasource.platform=h2 spring.datasource.url=jdbc:h2:mem:w3codebox
Passos13: : No diretório src/main/Crie um arquivo no diretório SQL arquivo.
Clique com o botão direito no diretório src/main/resources->Novo->Arquivo->Fornecer Nome do arquivo->Concluído
Fornecemos o nome do arquivo data.sql e insira os seguintes dados.
data.sql
insert into userdata values(101Tom'); insert into userdata values(102Andrew'); insert into userdata values(103Tony'); insert into userdata values(104Bob'); insert into userdata values(105Sam');
Passos14: : No src Crie um arquivo com o nome webapp .
Passos15: usando o diretório ControllerDemo Crie um arquivo JSP com o nome retornado na página. No arquivo ControllerDemo.java, retornamos home.jsp 。
home.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> !DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Inserir título aqui</title> </head> <body> <form action="addUser"> ID:<br /> <input type="text" name="t1><br /> Nome do usuário:<br /> <input type="text" name="t2><br /> <input type="submit" value="Add"> </form> </body> </html>
Passos16: executar SpringBootJpaExampleApplication.java arquivo. Podemos ver no console que nosso aplicativo já está em execução na porta 8085 para executar com sucesso.
Passos17: Abra o navegador e chame a URL http: //localhost: 8085/h2-console/. Ele mostra a classe do driver, que estamos application.properties URL JDBC e nome de usuário padrão sa configurados no arquivo.
Podemos também clicar no Testar Conexão botão para testar a conexão. Se a conexão for bem-sucedida, a mensagem "Teste bem-sucedido" será exibida.
Passos18: Clique no Conectar (conexão) botão. Ele mostra que estamos conectados User.java Estrutura da tabela userdata definida no
Passos19: Execute a seguinte consulta para ver os dados que já inserimos data.sql dados no arquivo.
SELECT * FROM USERDATA;