일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 소켓
- Java
- post
- Spring
- STREAM
- 캐시서버
- AOP
- container
- map
- Set
- Jenkins
- LAN어댑터
- gradle
- 방화벽
- mybatis
- 액세스회선
- sonarQube
- 라우터
- 허브
- Linux
- docker
- cloud
- tomcat
- ansible
- Collection
- jdk
- Pipeline
- JPA
- DevOps
- IntelliJ
- Today
- Total
거북이-https://velog.io/@violet_evgadn 이전완료
MyBatis 환경 설정(application.properties, build.gradle) 본문
Gradle에 의존성 추가
build.gradle의 dependencies 위치에 2개의 의존성만 추가해주면 된다.
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.4'
implementation "mysql:mysql-connector-java:5.1.44"
application.properties 설정
MyBatis 같은 경우 "DB"를 활용하기 위한 기술이다 보니 일단 어떤 DB를 활용할 것인지 지정해줘야 한다.
(DB 설치 및 활용 방법 같은 경우 나중에 포스팅하도록 하겠다)
이후 application.properties에 "어디에 Mapper가 위치해있는가"에 대한 정보를 입력해 줄 필요가 존재한다.
Mapper Interface 입장에서 매칭 될 Mapper File 위치를 알아야 Query문을 연결시킬 수 있기 때문이다.
추가해야 할 application.properties 내용은 아래와 같다.
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/database
spring.datasource.username=root
spring.datasource.password=root
mybatis.type-aliases-package= egovframework.com.review.mapper
mybatis.mapper-locations= mybatis/mapper/**/*.xml
◎ spring.datasource
내가 연결할 DB에 대한 정보를 전달하는 것이다.
- spring.datasourec.driver-name : 연결할 DB 종류
- MySQL : com.mysql.jdbc.Driver
- MariaDB : org.mariadb.jdbc.Driver
- MariaDB 자체의 Driver로 설정하면 에러가 발생하는 경우가 생길 수도 있음
- MySQL Driver로 설정해도 MariaDB를 활용할 수 있으므로 범용성과 안정성을 위해 com.mysql.jdbc.Driver 활용을 추천
- Oracle : oracle.jdbc.driver.OracleDriver
- Oracle은 MySQL과 연동이 되지 않으므로 무조건 해당 Driver를 활용해야 함
- spring.datasource.jdbc-url : 활용할 DB 경로
- 여기서 중요한 점이 'spring.datasource.url'이 아닌 'spring.datasource.jdbc-url'로써 "jdbc-url"을 활용해야 한다는 점이다. 만약 이렇게 설정하지 않는다면 "jdbcUrl is required with driverClassName."이라는 에러가 발생한다.
jdbc:{사용할 DB 종류}://{IP 주소}:{DB Port}/{사용할 DB 이름}
⊙ DB 종류 : Mysql일 경우 mysql, Oracle일 경우 oracle:thin
- spring.datasource.username : DB 사용자
- spring.datasource.password : DB 암호
◎ mybatis
mybatis.type-aliases-package
지정한 패키지의 "하위에" 존재하는 모든 Mapper Interface를 찾아주는 역할이다.
지정한 패키지 기준 하위에 존재하는 모든 파일을 찾다 보니 같은 이름의 파일이 2개 존재할 경우 에러가 발생할 수 있다.
물론 모든 클래스 이름을 다르게 하는 게 1순위지만(사실 이렇게 코드를 짜야한다. 똑같은 이름이 다른 패키지에 존재해버리면 프로그램이 너무 복잡해진다) @Alias 어노테이션을 활용해 같은 클래스 이름이라도 다르게 활용할 수 있다
mybatis.mapper-locations
"어떤 경로에 Mapper Interface와 대응되는 파일이 존재하는가"를 명시해주는 설정값이다.
Spring Web Project 기준 resources 경로를 시작으로 파일을 찾게 된다. 위 설정값을 보면 mybatis/mapper/**/*.xml으로 값이 설정되어 있는데, 이 의미를 하나씩 뜯어보자.
1. mybatis : resource/mybatis 패키지로 가라
2. mapper : resources/mybaatis/mapper 패키지로 가라
3. ** : *은 패키지 아래에 있는 모든 파일이 올 수 있음을 의미하고 **은 패키지 아래 있는 모든 파일 및 폴더를 통틀어 의미한다. 즉, **을 입력했으므로 모든 파일과 "폴더에 존재하는 모든 하위 폴더 및 파일"까지 포함한다는 의미이며, 이는 지정한 패키지에 속하는 모든 파일들을 의미한다. 즉 resouces/mybaits/mapper Depth와 관계없이 패키지에 속한 모든 파일들에 적용된다는 것이다.
4. *.xml : resources/mybatis/mapper 패키지와 그 하위에 존재하는 모든 파일들 중 .xml이라는 확장자를 가진 파일만 Mapping File로 인지한다는 것이다.(즉 이 XML 확장자를 가진 파일에 존재하는 Query문만 활용할 수 있음)
'웹 개발 > DB연동' 카테고리의 다른 글
DB Settings (0) | 2022.08.23 |
---|---|
MyBatis 환경 설정(SqlSessionFactory) (0) | 2022.08.19 |
MyBatis 동작 방식 (0) | 2022.08.17 |
SQL Mapper와 ORM (0) | 2022.08.16 |
Persistence Framework (0) | 2022.08.16 |