Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <jdbc:embedded-database id="dataSource" type="H2">
- <jdbc:script location="schema.sql"/>
- <jdbc:script location="data.sql"/>
- </jdbc:embedded-database>
- insert into PersonForH2 (first_name, last_name, age) VALUES ('Roma', 'Romarov', '18');
- insert into PersonForH2 (first_name, last_name, age) VALUES ('Pavel', 'Pavlov', '19');
- insert into PersonForH2 (first_name, last_name, age) VALUES ('Egor', 'Egorov', '20')
- class SimplePersonTest {
- private EmbeddedDatabase embeddedDatabase;
- private JdbcTemplate jdbcTemplate;
- private PersonDao personDao;
- @BeforeEach
- void setUp() {
- embeddedDatabase = new EmbeddedDatabaseBuilder()
- .addDefaultScripts()
- .setType(EmbeddedDatabaseType.H2)
- .build();
- jdbcTemplate = new JdbcTemplate(embeddedDatabase);
- personDao = new SimplePerson(jdbcTemplate);
- }
- @Test
- void getAll() {
- Assertions.assertNotNull(personDao.getAll());
- Assertions.assertEquals(2,personDao.getAll().size());
- }
- public interface PersonDao {
- long create(Person person);
- default Optional<Person> get(long id) {
- return getAll().stream().filter(person -> person.getId() == id).findAny();
- }
- List<Person> getAll();
- Person update(Person person);
- PersonDao remove(long id);
- default PersonDao remove(Person person) {
- return remove(person.getId());
- }
- }
- public interface Person {
- String getFirstName();
- String getLastName();
- int getAge();
- Long getId();
- String setFirstName();
- String setLastName();
- String setAge();
- Long setId();
- }
- @AllArgsConstructor(onConstructor = @__(@Autowired))
- @Data
- @Component("person")
- @NoArgsConstructor(force = true)
- public class SimplePerson implements Person, PersonDao {
- Long id;
- String firstName;
- String lastName;
- int age;
- JdbcTemplate jdbcTemplate;
- public SimplePerson(JdbcTemplate jdbcTemplate) {
- this.jdbcTemplate = jdbcTemplate;
- }
- //....
Add Comment
Please, Sign In to add comment