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 |
Tags
- LOG4J
- gradle
- useEffect
- Linux
- maven
- springboot
- gson
- BPMN
- JavaScript
- Kubernetes
- NCP
- intellijIDEA
- JPA
- nginx
- log4j2
- nodejs
- Spring
- Windows
- tibero
- Java
- MySQL
- database
- dbeaver
- IntelliJ
- Git
- mybatis
- sapfiorielements
- react
- VSCode
- docker
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