Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Spring JDBC unter Verwendung der Datei application.properties

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!