Mysql
 sql >> Database >  >> RDS >> Mysql

Spring JDBC utilizzando il file application.properties

In primo luogo, ti consiglio di imparare a farlo senza application.properties file. Viviamo nel 21° secolo, dove Spring-boot ci permette di dichiarare jdbc dataSource come @Bean con le credenziali del database in MySpringBootApplication classe. Guarda come farlo qui

In secondo luogo, consiglierei di non utilizzare jdbcTemplate a meno che tu non abbia tempo Segna le mie parole, se capita di eseguire il debug, sarebbe un incubo. Quindi prova a utilizzare Jdbc puro con l'aggiunta della configurazione a molla.

Esempio di esempio come farlo:

Interfaccia StudentDAO

    public interface StundentDAO {

    void addStudent(String name, String surname);

    List<Student> findStudents();
}

Implementazione di 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;
    }
} 

Tieni presente che dataSource fa solo connettività al database.(vedi il link)

Buona fortuna!