티스토리 뷰
MyBatis
필요한 DB 관련 메서드는 인터페이스에 정의하고, 그 인터페이스 및 이가 포함하는 메서드 등을 외부 XML과 연결하여 쿼리를 자바 코드와 분리하여 관리하기 위해 사용한다.
엔티티(Entity) 객체의 멤버를 자동으로 초기화해 줌으로 굉장히 편리하다.
application.properties
설정# MyBatis에서 활용할 XML 파일의 위치를 지정한다. mybatis.mapper-locations=classpath:mappers/**/*.xml # 사용할 DBMS의 JDBC Driver 전체 경로 spring.datasource.driver-class-name=org.mariadb.jdbc.Driver # DBMS URL spring.datasource.url=jdbc:mariadb://localhost:12602 # DBMS 사용자 이름 spring.datasource.username=study # DBMS 사용자 비밀번호 spring.datasource.password=test1234
구조
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="[연결하고자 하는 인터페이스의 전체 경로]"> </mapper>
<mapper> ... </mapper>
: 해당 XML 파일과 연결되는 인터페이스가 가지는 메서드들에 대한 내용을 가지는 태그이다.- 속성
namespace
: 연결코자 하는 인터페이스의 전체 경로 (필수)
- 자식 태그
- 공통
- 속성
id
: 해당 태그와 연결시킬 인터페이스의 메서드 이름을 지정한다. (필수)parameterType
: 연결된 메서드가 가지는 매개변수의 타입 한 개만 지정한다. (없으면 생략)
- 속성
<insert> ... </insert>
:INSERT
쿼리를 실행하기 위해 사용한다.- 속성
useGeneratedKeys
: INSERT 때문에 자동으로 생성된 키를 사용하겠다는 의미로 그 값은true
혹은false
이다. (기본 값 false)keyProperty
: 자동으로 생성된 키를 대입할 멤버 변수의 이름이다.useGeneratedKeys
가true
일때만 유효하다.keyColum
: 자동으로 생성된 키에 대한 DBMS의 열 이름이다.useGeneratedKeys
가true
일때만 유효하다.
- 속성
<select> ... </select>
:SELECT
쿼리를 실행하기 위해 사용한다.- 속성
resultType
: 해당 쿼리를 실행 함으로써 반환될 타입의 전체 경로이다.
- 속성
<update> ... </update>
:UPDATE
쿼리를 실행하기 위해 사용한다.<delete> ... </delete>
:DELETE
쿼리를 실행하기 위해 사용한다.- 기타
CREATE
,DROP
,ALTER
모두 가능하지만 잘 사용하지는 않는다.
- 공통
- 속성
#{...}
: 쿼리 안에서 전달된 매개변수의 멤버를 대입하기 위해 사용한다. 자동 이스케이핑이 적용된다.${...}
: 쿼리 안에서 전달된 매개변수의 멤버를 대입하기 위해 사용한다. 자동 이스케이핑이 적용되지 않는다. 마찬가지로 보안상 취약함으로 클라이언트가 넘겨준 값을 대입하기 위해서는 절대로 사용하지 않는다.
'웹 개발 > SpringBoot' 카테고리의 다른 글
[String Boot] DELETE 구현(Teacher version) (0) | 2022.10.31 |
---|---|
[SpringBoot] 메모장 구현 (4) | 2022.10.30 |
[Spring Boot] Spring Boot에 JS, CSS, HTML 연동 (2) | 2022.10.26 |
[Spring Boot] 응답, 응답오류 종류 (0) | 2022.10.26 |
[String Boot] 어노테이션 - multifly, add (4) | 2022.10.25 |
댓글