Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Spring JDBC przy użyciu pliku application.properties

Po pierwsze, radzę nauczyć się, jak to zrobić bez application.properties plik. Żyjemy w XXI wieku, gdzie Spring-boot pozwala nam zadeklarować jdbc dataSource jako @Bean z poświadczeniami bazy danych w MySpringBootApplication klasa. Zobacz, jak to zrobić tutaj

Po drugie, radzę nie używać jdbcTemplate chyba że nie masz czasu. Zapamiętaj moje słowa, jeśli zdarzy się debugować - byłby to koszmar. Spróbuj więc użyć czystego Jdbc z dodatkiem konfiguracji sprężynowej.

Przykładowy przykład, jak to zrobić:

Interfejs StudentDAO

    public interface StundentDAO {

    void addStudent(String name, String surname);

    List<Student> findStudents();
}

Wdrożenie JdbcStudentDAO

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

Pamiętaj, że dataSource robi tylko łączność z bazą danych. (patrz link)

Powodzenia!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nieprzechwycony wyjątek „PDOException” z komunikatem „SQLSTATE[HY093]:nieprawidłowy numer parametru”

  2. Railsy 3.2.6 i tworzenie widoków baz danych poprzez migracje

  3. Nie można połączyć się ze zdalnym MySQL za pomocą VB6 (10060)

  4. Błąd zakleszczenia MySQL

  5. Brak mysql.h i próba znalezienia mysql-devel