[Spring Boot] Plantilla de conexión de datos JdbcTemplate: use JdbcTemplate para operar la base de datos

Utilice JdbcTemplate para operar la base de datos

Después de integrar con éxito JdbcTemplate en el proyecto Spring Boot, ¿cómo utilizar la plantilla de conexión de la base de datos JdbcTemplate para operar la base de datos? A continuación, se utilizará un ejemplo para demostrar cómo JdbcTemplate puede implementar operaciones como agregar, eliminar, modificar y verificar la información de los estudiantes. Aprendamos y usémoslo en la práctica para comprenderlo y absorberlo mejor.

Implementar funciones de gestión de datos de estudiantes.

Paso 01 Crear clase de entidad.

Cree la clase de entidad Estudiante correspondiente de acuerdo con la estructura de la tabla Estudiante creada anteriormente, el código específico es el siguiente:

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方法
}

Cabe señalar que el tipo de datos de la clase de entidad debe corresponder uno a uno con el campo de la base de datos.

Paso 02 Definir la interfaz del Repositorio.

Primero, cree la interfaz StudentRepository y defina los métodos de interfaz comúnmente utilizados para agregar, eliminar, modificar y verificar. El código de muestra es el siguiente:

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

En el ejemplo anterior, los métodos save(), update(), delete() y findById() están definidos en StudentRepository.

Luego, cree la clase StudentRepositoryImpl, herede la interfaz StudentRepository e implemente los métodos agregar, eliminar, modificar y consultar en la interfaz. El código de muestra es el siguiente:

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

En el ejemplo anterior, la anotación @Repository se usa en la clase StudentRepositoryImpl para anotar el componente de acceso a datos JdbcTemplate y se inyecta una instancia de JdbcTemplate en la clase.

Paso 03: Implementar las funciones de agregar, eliminar, modificar y verificar.

A continuación, se implementan uno por uno los métodos correspondientes para agregar, eliminar, modificar y buscar.

1) Recién agregado: implemente el método save() en la interfaz StudentRepository en la clase StudentRepositoryImpl. El código de muestra es el siguiente:

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

En JdbcTemplate, además de consultar varias API, todas las operaciones nuevas, eliminadas y modificadas se completan llamando al método update() y simplemente pasando SQL. El valor de retorno del método Update() es el número de filas afectadas por la ejecución de SQL.

2) Eliminar: elimine la información del usuario a través de la identificación del usuario e implemente el método update () de la interfaz StudentRepository en la clase StudentRepositoryImpl. El código de muestra es el siguiente:

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

Los lectores pueden tener preguntas después de ver esto: ¿Cómo se llama al método update() al agregar, eliminar o modificar? ¿Es esto diferente de otros marcos? Estrictamente hablando, la adición, eliminación y modificación pertenecen a la escritura de datos. Los cambios en los datos en la base de datos se pueden lograr ejecutando la instrucción SQL correspondiente a través de update ().

3) Modificación: la modificación es similar a una nueva adición: implemente el método update() de la interfaz StudentRepository en la clase StudentRepositoryImpl. El código de muestra es el siguiente:

    @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 información del usuario según la identificación del usuario. También implemente el método findById () de la interfaz StudentRepository en la clase StudentRepositoryImpl. El código de muestra es el siguiente:

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

En el ejemplo anterior, JdbcTemplate ejecuta declaraciones relacionadas con la consulta y llama al método query () y al método queryForXXX (), y el objeto de consulta llama al método queryForObject. JdbcTemplate admite la conversión de resultados de consultas en objetos de entidad y utiliza el nuevo BeanPropertyRowMapper(Student.class) para encapsular los datos devueltos. Asigna automáticamente columnas de datos a clases de entidad de clases específicas mediante la coincidencia de nombres.

Al realizar una operación de consulta, se necesita un RowMapper para hacer coincidir las columnas consultadas con los atributos en la clase de entidad uno a uno: si los nombres de las columnas y los nombres de los atributos son los mismos, puede usar BeanPropertyRowMapper directamente; si los nombres de las columnas y los nombres de los atributos son diferentes, es necesario que los desarrolladores implementen ellos mismos la interfaz RowMapper para asignar columnas de datos a campos de atributos de clase de entidad.

Paso 04 Prueba de verificación.

A continuación, pruebe el StudentRepository encapsulado para ver si cada método en StudentRepository es correcto. Cree la clase StudentRepositoryTests e inyecte StudentRepository en la clase de prueba.

@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());
    }
}

A continuación, ejecute los métodos de prueba unitaria anteriores en secuencia para verificar si las funciones de agregar, eliminar, modificar y verificar la información del estudiante son normales. Los resultados se muestran en la figura.
Los resultados muestran que la prueba unitaria se ejecuta normalmente, lo que indica que el método en StudentRepository se ejecuta con éxito y también puede verificar si los datos en la base de datos cumplen con las expectativas.

Supongo que te gusta

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