Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- database
- intellijIDEA
- Spring
- wildfly
- JavaScript
- IntelliJ
- VSCode
- Java
- gson
- log4j2
- Kubernetes
- jetbrains
- MySQL
- Git
- dbeaver
- BPMN
- kubectl
- JPA
- Windows
- nginx
- springboot
- NCP
- useEffect
- docker
- nodejs
- LOG4J
- tibero
- mybatis
- gradle
- react
Archives
- Today
- Total
두 손끝의 창조자
EmbeddedDatabase 사용하기 본문
EmbeddedDatabase는 테스트 할 때 유용하게 쓸 수 있다.
나는 이것을 내가 만든 코드가 트랜잭션이 잘 동작하는지 확인하고자 할 때 사용했다.
EmbeddedDatabase 는 자체로 DataSource 이어서 스프링의 트랜잭션 매니저나 JdbcTemplete 에 바로 사용할 수 있다. 하지만 트랜잭션테스트를 하기 위해서는 그대로 사용하면 build 할 때마다 다른 데이터베이스가 생겨 스키마를 공유할 수가 없게된다.
그래서 EmbeddedDatabase 는 진짜 디비만 생성하고 데이터 소스는 이를 참고하여 만든뒤 그 것을 활용하는것이 좋겠다.
EmbeddedDatabase database = new EmbeddedDatabaseBuilder()
.generateUniqueName(true)
.setType(EmbeddedDatabaseType.H2)
.setScriptEncoding("UTF-8")
.ignoreFailedDrops(true)
.addScript("schema.sql")
.build();
이렇게 디비를 만들어서
DataSource dataSource = new SingleConnectionDataSource(database.getConnection(), true);
이렇게 데이터 소스를 만들어서 사용한다.
그러면 디비를 같이 쓰면서 다른 데이터 소스를 사용하게 되어 서로 다른 유저가 같은 데이터베이스에 접근 했을 때 트랜잭션 처리 등을 테스트하기 용이하다.
반응형
Comments