woong's
Spring Tutorial H2 설정 , Hibernate , Dao 작성 및 Junit test 사용하기 02 본문
Spring Tutorial H2 설정 , Hibernate , Dao 작성 및 Junit test 사용하기 02
dlsdnd345 2016. 4. 28. 22:10Spring Tutorial H2 설정 , Hibernate , Dao 작성 및 Junit test 사용하기 02
첫번째 포스트를 통해서 프로젝트를 생성하고 간단하게 프로젝트의 구성을 알아보았습니다.
두번째 포스트를 통해서 서버의 데이터를 작성하는 부분을 구성해보려 합니다.
서버의 데이터를 구성하기 위해서 DB 가 필요 합니다.
DB 구성을 위해 필자는 H2, Hibernate 를 사용해 보려합니다.
프로젝트에서 H2 , Hibernate 를 설정 하기 위해서 Application.properties 를 작성해야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //DB 연결 spring.datasource.url=jdbc:h2:file:~/bookDB spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username= spring.datasource.password= //H2 설정 spring.h2.console.path=/h2console spring.h2.console.enabled=true //hibernate 설정 spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.jpa.hibernate.ddl-auto=update | cs |
필자는 위와 같이 설정 했습니다.
1. DB 연결
- url : DB 연결 작업을 합니다. 필자는 h2:file 을 사용하여 로컬의 루트의 DB 파일을 이용한다고 설정 했습니다.
- driver-class-name : h2 driver 를 연결
- username : DB name 설정
- password : DB password 설정
2. H2 설정
- enabled : 디폴트 false 이기때문에 true 를 통해서 활성화를 해야합니다.
- path : 브라우져를 통해서 DB 관리 페이지 path 설정
3. hibernate 설정
- ddl-auto : 서버 시작시 DB Table 상태 설정 (create drop 을 설정하면 서버 재시작시 데이터가 사라짐.)
위와 같이 설정하고 스프링 프로젝트를 실행해보겠습니다.
톰캣 서버가 실행이 되고 서버가 실행되었다는 로그가 나타납니다. 위와같이 실행이 되면 DB에 접근이 가능합니다.
http://localhost:8080/[path]
http://localhost:8080/h2console
위와 같이 DB 설치 없이 툴을 통해서 DB를 접근 할수 있습니다. 여기까지 잘나타나면 설정은 잘된것입니다.
현재 DB의 테이블이 없지만 , Entity 작성을 통해서 자동으로 생기게 됩니다.
이제 서버의 데이터를 담을수 있는 Entity를 작성해 보도록 하겠습니다.
hibernate Entity 를 작성해 보았습니다. hibernate는 따로 Search를 통해 학습니다 필요합니다.
간단히 설명하도록 하겠습니다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | @Entity public class Book { @Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.AUTO) private int id; @Column(name = "pageNember") private int pageNember; @Column(name = "author") private String author; @Column(name = "name") private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPageNember() { return pageNember; } public void setPageNember(int pageNember) { this.pageNember = pageNember; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getName() { return name; } public void setName(String name) { this.name = name; } } | cs |
@Entity 어노테이션을 통해서 Entity를 명시
@Id 어노테이션을 통해 index 지정
@GenerateValue 어노테이션을 통해 index 자동으로 추가
@Column DB Table Column 매칭
위와 같이 작성후에 스프링 프로젝트를 재 시작 합니다.
재시작후에 h2 DB를 확인해보면 테이블이 생성된것을 확인 할수 있습니다.
이제 테이블을 조회 하는 기능을 구현해야 합니다. 위 기능을 구현하기 위해 DAO를 작성해야 합니다.
1 2 3 4 5 6 7 | import org.springframework.data.jpa.repository.JpaRepository; import com.iw.entity.Book; public interface BookDao extends JpaRepository<Book, Integer> {} | cs |
DAO 를 작성 하였습니다. JpaRepository 를 통해서 entity 를 대입 시켜 주면 기본 CRUD 는 자동으로 구성해 줍니다.
너무 편리하게 기본 CRUD 를 만들었습니다. 이제 잘만들어 졌는지 테스트만 하면 됩니다.
위 DAO 가 잘작성 되었는지 확인하기 위해서 JunitTest Code 가 필요 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = Book01Application.class) @WebAppConfiguration public class BookDaoTest { @Autowired private BookDao bookDao; @Test public void findAll() { List<Book> bookList = bookDao.findAll(); assertThat(bookList.size(), is(0)); } } | cs |
DAO Test가 잘동작하는 것을 확인 할수 있습니다.
위코드를 간단히 설명 하면 테스트 코드를 설정 하였고 ,
@Autowired 어노테이션을 통해 Dao 변수에 초기화 작업을 해서 사용할수 있도록 하였습니다.
bookDao 기본 CRUD findAll을 호출해서 테스트 하는 코드입니다.
DB에 데이터가 없기 때문에 사이즈는 0 으로 테스트를 해보았습니다.
'Develop > Server' 카테고리의 다른 글
Server APNS 기능 구현시 주의점 (1) | 2016.05.27 |
---|---|
Spring Tutorial 프로젝트 생성하기 01 (0) | 2016.04.28 |
LG-5000P , NAPL-5000 이중 포트 포워딩 하기 (3) | 2016.02.13 |
서버 war 배포 (0) | 2016.02.13 |