Search buenodc

Nesta página
  1. Prof. Me. Danilo Bueno
  2. Três passos principais:
  3. layout: image image: ./images/itpweb2.crud-fuck.png backgroundSize: contain title: crud-fuck image
  4. Operação READ
  5. layout: center class: text-center

CRUD - método READ

Prof. Me. Danilo Bueno


Relembrando

Como realizar a conexão com o banco de dados em uma aplicação Spring?

Três passos principais:

  1. Configurar a conexão com o banco de dados
  2. Mapear as entidades
  3. Criar os repositórios

No repositório

  • Até então utilizamos os métodos save para salvar um novo registro.
  • Existe um conjunto de métodos que são comuns em qualquer aplicação que realiza operações de acesso ao banco de dados, conhecido como CRUD.

Importante: O CRUD no contexto de aplicações web é utilizado para realizar operações no banco de dados para manipulação dos REGISTROS da tabela.


CRUD

  • CRUD é um acrônimo para Create, Read, Update e Delete.

  • Representa as quatro operações básicas utilizadas em bases de dados relacionais (RDBMS)

  • O mapeamento das operações CRUD para as operações SQL são:

    • Create: INSERT
    • Read: SELECT
    • Update: UPDATE
    • Delete: DELETE

layout: image image: ./images/itpweb2.crud-fuck.png backgroundSize: contain title: crud-fuck image


Operação CREATE

O método save recebe um objeto User e salva no banco de dados:

@Transactional
public void save(User user) {
    String sql = "INSERT INTO user (email, password) 
        VALUES (:nome, :email)";
    Query query = em.createNativeQuery(sql);
    query.setParameter("nome", user.getEmail());
    query.setParameter("email", user.getPassword());
    query.executeUpdate();
}
  • Esse método faz a utilização dos parametros nomeados :nome e :email;

Operação READ

  • A operação Read é utilizada para recuperar registros do banco de dados.

  • Geralmente utilizada em duas versões:

    • Find All: Recupera TODOS os registros da tabela
    • Find By ID: Recupera UM registro específico da tabela

Repositório: método findAll

O método findAll retorna todos os usuários de uma tabela

@Repository
public class UserRepository {

    @PersistenceContext
    private EntityManager em;

    public List<User> findAll() {
        String sql = "SELECT * FROM user";
        Query q = em.createNativeQuery(sql, User.class);
        List<User> users = q.getResultList();
        return users;
    }

}

Explicando o código

Método findAll

  • Realiza a consulta no banco de dados e retorna TODOS os usuários cadastrados da tabela.
  • A consulta SQL é criada utilizando a classe Query e o método createNativeQuery()
  • O método recebe como parâmetro a consulta SQL (String) e o tipo de entidade (classe Java) que será retornado.
  • Por fim, o método getResultList() é utilizado para retornar a lista de usuários.

Como utilizar o método findAll?

Podemos usar o repositório para recuperar todos os registros de uma tabela.

@Controller
public class UserController {

  @Autowired
  private UserRepository userRepository;

  @GetMapping("/users")
  public String list(Model model) {
      List<User> users = userRepository.findAll();
      model.addAttribute("users", users);
      return "list.html";
  }
}

Na visão

Percorrer a lista de usuários com o th:each

<h1>Lista de tarefas</h1>
<ul>
    <li th:each="user : ${users}">
        [[${user.email}]]
    </li>
</ul>

layout: center class: text-center

Obrigado!

[email protected] · website/docs · github