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

Spring JDBC ved hjælp af application.properties fil

For det første vil jeg råde dig til at lære, hvordan du gør det uden application.properties fil. Vi lever i det 21. århundrede, hvor Spring-boot giver os mulighed for at erklære jdbc dataSource som @Bean med databaselegitimationsoplysninger i MySpringBootApplication klasse. Se hvordan du gør det her

For det andet vil jeg råde dig til ikke at bruge jdbcTemplate medmindre du ikke har tid. Marker mine ord, hvis der sker fejlretning - det ville være et mareridt. Så prøv at bruge ren Jdbc med tilføjelse af fjederkonfiguration.

Eksempel på hvordan man gør det:

StudentDAO-grænseflade

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

Bemærk venligst, at dataSource gør kun databaseforbindelse.(se linket)

Held og lykke!




  1. Tjek, om der findes en midlertidig tabel, og slet, om den findes, før du opretter en midlertidig tabel

  2. Kan ikke udstede datamanipulationserklæringer med executeQuery()

  3. Hvad pokker er en DTU?

  4. Hent rækkeprodukt (multiplikation)