Mysql
 sql >> база данни >  >> RDS >> Mysql

Spring JDBC с помощта на файл application.properties

Първо, бих ви посъветвал да научите как да го правите без application.properties файл. Живеем в 21-ви век, където Spring-boot ни позволява да декларираме jdbc dataSource като @Bean с идентификационни данни за база данни в MySpringBootApplication клас. Вижте как да го направите тук

Второ, бих посъветвал да не използвате jdbcTemplate освен ако нямаш време. Отбележете думите ми, ако се случи да отстраните грешки - това би било кошмар. Така че опитайте да използвате чист Jdbc с добавяне на пружинна конфигурация.

Примерен пример как да го направите:

StudentDAO интерфейс

    public interface StundentDAO {

    void addStudent(String name, String surname);

    List<Student> findStudents();
}

Внедряване на 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;
    }
} 

Моля, имайте предвид, че dataSource прави само свързване с база данни. (вижте връзката)

Успех!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли начин да се изпълни повече от една заявка на низ в MySQL-Python?

  2. импортирайте CSV в MySQL и конвертирайте датата

  3. класиране на записи в таблицата на mysql

  4. Как да изчисля площта на многоъгълник в MySQL база данни, когато точките на полигона са Lat Longs?

  5. Как да покажа MySQL бази данни на PHP скрипт?