diff --git a/build.gradle b/build.gradle index 5bb687f..26c609b 100644 --- a/build.gradle +++ b/build.gradle @@ -50,6 +50,8 @@ dependencies { compile group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect' compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-afterburner' compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-hibernate5' + compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc' + compile group: 'org.postgresql', name: 'postgresql', version: '9.4.1212' compile group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0' diff --git a/src/main/java/ru/ulstu/extractor/db/CommitRepository.java b/src/main/java/ru/ulstu/extractor/db/CommitRepository.java new file mode 100644 index 0000000..71b100d --- /dev/null +++ b/src/main/java/ru/ulstu/extractor/db/CommitRepository.java @@ -0,0 +1,42 @@ +package ru.ulstu.extractor.db; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.stereotype.Repository; +import ru.ulstu.extractor.Commit; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Repository +public class CommitRepository { + private final static String SQL_SELECT_COMMITS = "SELECT * FROM commit"; + private final static String SQL_INSERT_COMMITS = "INSERT INTO commit (hash, date, author, message) " + + "VALUES (?, ?, ?, ?)"; + private final JdbcTemplate jdbcTemplate; + + public CommitRepository(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + + private static class CommitRowMapper implements RowMapper { + + @Override + public Commit mapRow(ResultSet rs, int rowNum) throws SQLException { + return new Commit(rs.getString("message"), + rs.getString("author"), + rs.getDate("date")); + } + } + + public List getCommits() { + return jdbcTemplate.query(SQL_SELECT_COMMITS, new CommitRowMapper()); + } + + public void saveCommit(Commit commit) { + jdbcTemplate.update(SQL_INSERT_COMMITS, "", commit.getDate(), + commit.getAuthor(), + commit.getMessage()); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ee52065..734980c 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -5,4 +5,9 @@ logging.level.ru.ulstu=DEBUG extractor.custom-projects-dir= # Thymeleaf Settings spring.thymeleaf.cache=false -messages.basename.path=messages_en.properties \ No newline at end of file +messages.basename.path=messages_en.properties +# JPA Settings +spring.datasource.url=jdbc:postgresql://localhost:5432/repo +spring.datasource.username=postgres +spring.datasource.password=postgres +spring.datasource.driverclassName=org.postgresql.Driver \ No newline at end of file