Zunächst würde ich Ihnen raten, zu lernen, wie man es ohne application.properties
macht Datei. Wir leben im 21. Jahrhundert, wo Spring-boot
erlaubt uns, jdbc dataSource
zu deklarieren als @Bean
mit Datenbankanmeldeinformationen in MySpringBootApplication
Klasse. Sehen Sie sich hier
an, wie das geht
Zweitens rate ich davon ab, jdbcTemplate
zu verwenden es sei denn du hast keine zeit. Merken Sie sich meine Worte, wenn es zum Debuggen kommt - es wäre ein Albtraum. Versuchen Sie also, reines Jdbc mit zusätzlicher Federkonfiguration zu verwenden.
Beispielbeispiel, wie es gemacht wird:
StudentDAO-Schnittstelle
public interface StundentDAO {
void addStudent(String name, String surname);
List<Student> findStudents();
}
JdbcStudentDAO-Implementierung
@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;
}
}
Bitte beachten Sie, dass dataSource
macht nur Datenbankkonnektivität. (siehe Link)
Viel Glück!