SpringBoot를 공부하고 있고.
공부하다가 JPA를 공부해야한다고 누가 옆에서 말해서
JPA를 했는데, 긴 쿼리문을 날리기가 너무 힘들어서 늘 쓰던 Mybatis를 붙이기로 했다.
하지만 아직 개념이 제대로 정착이 안된 나는 조금 여기저기서 도움을 받아야했닷
이게 제대로 된 게 맞는지는 모르겠지만 여튼 select 타고 리스트 끌어오니깐 된 듯! ㅋㅋ
도움 받은 블로그
여기서는 개념을 얻었다! 핵이득!
JPA 이용시 아래의 과정
controller -> service -> repository(JpaRepository 상속 인터페이스)
Mapper 이용은 아래의 과정을거침
controller -> service -> mapper(인터페이스) -> xml(SQL Map XML)
jason-moon.tistory.com/127?category=255986
여기서는 실질적으로 붙이는데 많은 도움을 받았음
일단
DB랑 MyBatis를 이어주는건 sqlSessionFactoryBean 이라는 녀석(객체라고함)이다.
그리고 어디어디 보다가 본 건데 SpringBoot는 원래 Mybatis를 지원안한다고한다.
근데 Mybatis가 지원을 한다고.. ㅋ 이런건 다들 어떻게 아시는거지...?ㅎㅎ
1. pom.xml 에 마이바티스를 설정해줘야한다.
최신자료가 약간 없어서.. https://mvnrepository.com 에서 mybatis를 검색해서 일단 다운로드 수가 제일 많은걸 .. 다운받았다. 되기만하면되지뭐.. ㅋㅋㅋ ㅠ.ㅠ
<!-- mybatis 추가 / 제일 다운로드가 많은걸로 다운받음. - https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
- 그전에 필요한 lombok 이나 서버에따라서 mysql이던지 이런거는 추가되어있어야한다.
- 나는 귀찮아서 그냥 H2 데이터베이스로 실험했기 때문에 lombok만 추가함
2. 당연히 되어있겠지만
application.properties 나 yaml 파일에 DB 정보 들어가 있어야함!
spring.datasource.jdbc-url=jdbc:mysql://{url}:{port}/[db}
spring.datasource.username=root
spring.datasource.password=1234
나는 걍 h2 DB써서 이걸로 했다.
spring.h2.console.enabled=true
spring.datasource.platform=h2
spring.datasource.url=jdbc:h2:mem:navin
- 그리고 또 어디서 봤는데
spring boot 2.0 이후부터 기본적으로 사용되는 커넥션 풀이 HikariCP로 변경 되었다고한다.
커넥션 풀 종류중 성능이 좋다고 한다.
--> 이거 다음에 검색해봐야지!..
3. 그 다음에 아까 말한 sqlSessionFactoryBean을 만들어주기위해서
config 폴더에
참조 블로그에서 온거 타자로 열시미 쳐서 (쳐보면서 해야 그나마 조금 이해가 감..)
MybatisConfig.java 를 만들었다.
중간에 dataSource를 찍어봤다.
[데이타 소스가 있긴한걸까????? 함 찍어보기 HikariDataSource (HikariPool-1) ]
이렇게 이쁘게 찍혔다. HikariPool.. 나중에 공부해야지... ^^;;
요러케 필요한 빈을 생성한 다음에!
4. mapper 패키지를 하나 만들고 인터페이스를 하나 만들어서
* 어노테이션 아직도 잘 모르겠어서 ㅠㅠ 일단 다 넣어봤다.
그리구
mapper.xml 파일도 하나 만들었다.
resultType 전에 java.utill.List 이런거로 막했던것 같은데 ㅋㅋ Map으로 안하면 에러났음 ㅠㅠ
5. 컨트롤러와 뷰단을 만들어줬다.
기존 controller 파일은 JPA 막 함수쓰느라 더러워서 다른거 하나더 만듬
JPA 로 객체 Alien에 이쁘게 받아와서 똑같은 코드로 작성했는데
글이 나오지 않아서
출력을 해보니
JPA 통해서 들어오는건
[Alien(aid=101, aname=Navin, title=Java, content=brrrrrrr, writeDay=2020-04-04, readCnt=0), ····
이렇게 이쁘게 객체랑 / 객체변수 명으로 들어오는데..
MyBatis로 들어오는건
[{READCNT=0, TITLE=Java, CONTENT=brrrrrrr, AID=101, NAME=Navin, WRITE=2020-04-04}, ····
그냥 DB 컬럼명 그대로 투박하게 들어왔다.
{} [] () 괄호도 다르고.. 뭔가 형태가 다르게 넘어오는것 같다.
추가로 공부해야겠다. ;;;;;; 공부할게 넘 많네..
그래도 일단은 나오는것으로 만족.!
이만 오늘 복습끝! :)
'Java&Spring' 카테고리의 다른 글
No converter found for return value of type: class java.util.HashMap (Json converter 에러) (0) | 2023.01.11 |
---|---|
[Java] 날짜&시간 포맷 설정 - SimpleDateFormat (0) | 2023.01.05 |
[Java] HttpServletRequest - URL,URI 값 추출하기 (0) | 2021.09.08 |
[파이썬] 기초 정리 (0) | 2020.12.09 |
[Spring Boot]_갠플정리/ 간단방명록 만들기 (2) | 2020.09.10 |