sql >> Base de Datos >  >> RDS >> Mysql

Spring JDBC usando el archivo application.properties

En primer lugar, te aconsejo que aprendas a hacerlo sin application.properties expediente. Vivimos en el siglo XXI, donde Spring-boot nos permite declarar jdbc dataSource como @Bean con las credenciales de la base de datos en MySpringBootApplication clase. Vea cómo hacerlo aquí

En segundo lugar, recomendaría no usar jdbcTemplate a menos que no tengas tiempo. Marque mis palabras, si sucede que se depura, sería una pesadilla. Así que intente usar Jdbc puro con la adición de la configuración de primavera.

Ejemplo de ejemplo de cómo hacerlo:

Interfaz StudentDAO

    public interface StundentDAO {

    void addStudent(String name, String surname);

    List<Student> findStudents();
}

Implementación de JdbcStudentDAO

    @Repository
    public class JdbcStudentDAO implements StudentDAO {

    //[IMPORTANT] import javax.sql.datasource package (?)
    private Datasource datasource;

    @Autowire
    public JdbcStudentDAO(Datasource datasource) {
        this.datasource = datasource;
    }

    @Override
    public void addStudent(String name, String surname) {
        String query = "INSERT INTO Students VALUES (?,?)";
        try(Connection connection = datasource.getConnection()) {
            try(PreparedStatement statement = connection.preparedStatement(query)) {
                statement.setString(1, name);
                statement.setString(2, surname);
                statement.executeUpdate();
            }
        } catch(SQLException e) {
            e.printStacktrace();
        }
    }

    @Override
    public List<Student> findStudents() {
        String query = "SELECT * FROM Students";
        Student student = null; //will be used soon as DTO
        List<Student> listOfStudents = null;
        try(Connection connection = datasource.getConnection()) {
            try(PreparedStatement statement = connection.preparedStatement(query)) {
                try(ResultSet rs = statement.executeQuery()) {
                    listOfStudents = new ArrayList<>();
                    while(rs.next()) {
                        student = new Student(
                            rs.getString("name");
                            rs.getString("surname");
                        );
                    }
                    listOfStudents.add(student);
                }
            }
        } catch(SQLException e) {
            e.printStacktrace();
        }
        return listOfStudents;
    }
} 

Tenga en cuenta que dataSource solo tiene conectividad de base de datos (ver el enlace)

¡Buena suerte!