För det första skulle jag råda dig att lära dig hur du gör det utan application.properties fil. Vi lever i 2000-talet, där Spring-boot tillåter oss att deklarera jdbc dataSource som @Bean med databasuppgifter i MySpringBootApplication klass. Se hur du gör det här
För det andra rekommenderar jag att du inte använder jdbcTemplate om du inte har tid. Markera mina ord, om det skulle råka felsöka - det skulle vara mardröm. Så försök att använda ren Jdbc med tillägg av fjäderkonfiguration.
Exempel på hur man gör det:
StudentDAO-gränssnitt
public interface StundentDAO {
void addStudent(String name, String surname);
List<Student> findStudents();
}
JdbcStudentDAO-implementering
@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;
}
}
Observera att dataSource gör endast databasanslutning.(se länken)
Lycka till!