[Spring Boot] Modelo de conexão de dados JdbcTemplate — use JdbcTemplate para operar o banco de dados

Use JdbcTemplate para operar o banco de dados

Após integrar com sucesso o JdbcTemplate no projeto Spring Boot, como usar o modelo de conexão de banco de dados JdbcTemplate para operar o banco de dados? A seguir, um exemplo será usado para demonstrar como JdbcTemplate pode implementar operações como adicionar, excluir, modificar e verificar informações do aluno. Vamos aprender e usá-lo na prática para melhor entendê-lo e absorvê-lo.

Implementar funções de gerenciamento de dados de alunos

Passo 01 Crie a classe de entidade.

Crie a classe de entidade correspondente Student com base na estrutura da tabela Student criada anteriormente. O código específico é o seguinte:

public class Student {
    
    
    private Long id;
    private String name;
    private int sex;
    private int age;

    public Student() {
    
    

    }
    public Student(String name ,  int sex, int age) {
    
    
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    //省略get、set方法
}

Deve-se observar que o tipo de dados da classe de entidade deve corresponder um a um ao campo do banco de dados.

Passo 02 Defina a interface do Repositório.

Primeiro, crie a interface StudentRepository e defina os métodos de interface de adição, exclusão, modificação e verificação comumente usados. O código de exemplo é o seguinte:

public interface StudentRepository {
    
    
    int save(Student student);
    int update(Student student);
    int delete(Long id);
    Student findById(Long id);
}

No exemplo acima, os métodos save(), update(), delete() e findById() são definidos em StudentRepository.

Em seguida, crie a classe StudentRepositoryImpl, herde a interface StudentRepository e implemente os métodos de adição, exclusão, modificação e consulta na interface. O código de exemplo é o seguinte:

@Repository
public class StudentRepositoryImpl implements StudentRepository {
    
    
    @Autowired
    private JdbcTemplate jdbcTemplate;
}

No exemplo acima, a anotação @Repository é usada na classe StudentRepositoryImpl para anotar o componente de acesso a dados JdbcTemplate e uma instância JdbcTemplate é injetada na classe.

Passo 03: Implemente as funções de adição, exclusão, modificação e verificação.

A seguir, os métodos correspondentes de adição, exclusão, modificação e pesquisa são implementados um por um.

1) Adicionado recentemente: Implemente o método save() na interface StudentRepository na classe StudentRepositoryImpl. O código de exemplo é o seguinte:

    @Override
    public int save(Student student) {
    
    
        return jdbcTemplate.update("INSERT INTO Student(name, sex, age) values(?,?,?)",
        student.getName(),student .getSex(),student.getAge());
    }

No JdbcTemplate, além de consultar diversas APIs, todas as operações novas, excluídas e modificadas são concluídas chamando o método update() e apenas passando no SQL. O valor de retorno do método Update() é o número de linhas afetadas pela execução SQL.

2) Excluir: Exclua as informações do usuário por meio do ID do usuário e implemente o método update() da interface StudentRepository na classe StudentRepositoryImpl. O código de exemplo é o seguinte:

    @Override
    public int delete(Long id) {
    
    
        return jdbcTemplate.update("DELETE FROM Student where id = ? ", id);
    }

Os leitores podem ter dúvidas depois de ver isto: Como você chama o método update() ao adicionar, excluir ou modificar? Isso é diferente de outras estruturas? Estritamente falando, adição, exclusão e modificação pertencem à gravação de dados.As alterações nos dados do banco de dados podem ser obtidas executando a instrução SQL correspondente por meio de update().

3) Modificação: A modificação é semelhante à nova adição. Implemente o método update() da interface StudentRepository na classe StudentRepositoryImpl. O código de exemplo é o seguinte:

    @Override
    public int update(Student student) {
    
    
        return jdbcTemplate.update("UPDATE Student SET name = ? , password = ? , age = ?, WHERE id=?", student.getName(), student.getSex(), student.getAge(), student.getId());
    }

4) Consulta: Consulta as informações do usuário com base no ID do usuário. Implemente também o método findById() da interface StudentRepository na classe StudentRepositoryImpl. O código de exemplo é o seguinte:

    @Override
    public Student findById(long id) {
    
    
        return jdbcTemplate.queryForObject("SELECT * FROM Student WHERE id=?", new Object[] {
    
     id }, new BeanPropertyRowMapper<Student>(Student.class));
    }

No exemplo acima, JdbcTemplate executa instruções relacionadas à consulta e chama o método query() e o método queryForXXX(), e o objeto de consulta chama o método queryForObject. JdbcTemplate suporta a conversão de resultados de consulta em objetos de entidade e usa o novo BeanPropertyRowMapper(Student.class) para encapsular os dados retornados. Ele mapeia automaticamente colunas de dados para classes de entidade de classes especificadas por meio de correspondência de nomes.

Ao executar uma operação de consulta, um RowMapper é necessário para combinar as colunas consultadas com os atributos na classe de entidade um a um: se os nomes das colunas e os nomes dos atributos forem iguais, você pode usar o BeanPropertyRowMapper diretamente; se os nomes das colunas e os nomes dos atributos são diferentes, você precisa que os próprios desenvolvedores implementem a interface RowMapper para mapear colunas de dados para campos de atributos de classe de entidade.

Etapa 04 Teste de verificação.

Em seguida, teste o StudentRepository encapsulado para ver se cada método no StudentRepository está correto. Crie a classe StudentRepositoryTests e injete studentRepository na classe de teste.

@SpringBootTest
class StudentRepositoryImplTest {
    
    
    @Autowired
    private StudentRepository studentRepository;

    @Test
    void save() {
    
    
        Student student = new Student("example", 1, 30);
        studentRepository.save(student);
    }

    @Test
    void update() {
    
    
        Student student = new Student("example", 1, 18);
        student.setId(1L);
        studentRepository.update(student);
    }

    @Test
    void delete() {
    
    
        studentRepository.delete(1L);
    }

    @Test
    void findById() {
    
    
        Student student = studentRepository.findById(1L);
        System.out.println("student == " + student.toString());
    }
}

Em seguida, execute os métodos de teste de unidade acima em sequência para verificar se as funções de adição, exclusão, modificação e verificação das informações do aluno são normais. Os resultados são mostrados na figura.
Os resultados mostram que o teste unitário é executado normalmente, indicando que o método em StudentRepository foi executado com sucesso, e também é possível verificar se os dados do banco de dados atendem às expectativas.

Acho que você gosta

Origin blog.csdn.net/weixin_45627039/article/details/132401787
Recomendado
Clasificación