public class EmbeddedDbTest {
EmbeddedDatabase db;
JdbcTemplate template;
@BeforeEach
public void setUp(){
db = new EmbeddedDatabaseBuilder()
.setType(HSQL)
.addScript("classpath:/embeddeddb/schema.sql")
.addScript("classpath:/embeddeddb/data.sql")
.build();
template = new JdbcTemplate(db);
}
@AfterEach
public void tearDown(){
db.shutdown();
}
@Test
public void initData(){
assertEquals(template.queryForObject("select count(*) from sqlmap", Integer.class), 2);
List<Map<String, Object>> list = template.queryForList("select * from sqlmap order by key_");
assertEquals((String)list.get(0).get("key_"), "KEY1");
assertEquals((String)list.get(0).get("sql_"), "SQL1");
assertEquals((String)list.get(1).get("key_"), "KEY2");
assertEquals((String)list.get(1).get("sql_"), "SQL2");
}
@Test
public void insert(){
template.update("insert into sqlmap(key_, sql_) values(?, ?)", "KEY3", "SQL3");
assertEquals(template.queryForObject("select count(*) from sqlmap", Integer.class), 3);
}
}
p.633에 코드를 실행중 오류가 발생
java.lang.UnsupportedClassVersionError: org/hsqldb/jdbcDriver has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 |
내용을 보니.. hsqldb에 jdk 버전이 안맞는 것으로 확인
현재 사용중인 jre는 1.8이였다.
http://hsqldb.org/doc/2.0/changelist_2_0.txt
위에 문서를 확인해보니
hsql 2.6버전 부터는 최소 jre가 11버전이였다.
그래서 2.5버전으로 다운그레이드를 하니 정상적으로 동작했다.
나와 같은 현상이 발생했다면 위에 링크를 통해 최소 버전을 확인해보자!
ps.테스트코드 버전은 junit5를 사용해서 예제와 다를 수 있음
'개발서적 > 토비 스프링 3.1-Vol.1' 카테고리의 다른 글
[토비의 스프링 - Vol.1]7.6.2 빈 스캐닝과 자동와이어링 실습 중 에러 java.lang.IllegalStateException: Failed to load ApplicationContext (0) | 2021.06.11 |
---|---|
[토비의 스프링 - Vol.1]7.5.2 내장형 데이터베이스 - 2 (0) | 2021.06.07 |
[토비의 스프링 - Vol.1] 내가 몰랐던 용어 정리 (0) | 2021.05.15 |
[토비의 스프링 - Vol.1]7장 XML SQL 서비스 실습(리스트7-19) (0) | 2021.05.15 |
[토비의 스프링 - Vol.1]7.2.1 xml 파일 매핑 - JAXB 관련 실습 중 나온 현상 (0) | 2021.04.29 |