sql >> Databasteknik >  >> RDS >> Mysql

Spring JDBC med hjälp av filen application.properties

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!




  1. Installera PHP med Postgresql på MAC med homebrew

  2. MYSQL Hur man använder trim i urvalsfrågan

  3. Boolean vs tinyint(1) för booleska värden i MySQL

  4. Hur man ändrar användare till superanvändare i PostgreSQL