승띵이의 개발일지
[Spring Boot] MyBatis 본문
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" "http://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
: 자동으로 생성된 키를 대입할 멤버 변수의 이름이다.useGeneratedKyes
가true
일때만 유효하다.
- 속성
<select> ... </select>
:SELETE
쿼리를 실행하기 위해 사용한다.- 속성
resultType
: 해당 쿼리를 실행함으로써 반환될 타입의 전체 경로이다.
- 속성
<update> ... </update>
:UPDATE
쿼리를 실행하기 위해 사용한다.<delete> ... </delete>
:DELETE
쿼리를 실행하기 위해 사용한다.- 기타
CREATE
,DROP
,ALTER
모두 가능하지만 잘 사용하지는 않는다.
- 속성
- 공통
- 속성
#{...}
: 쿼리 안에서 전달된 매개변수의 멤버를 대입하기 위해 사용한다. 자동 이스케이핑이 적용된다.${...}
: 쿼리 안에서 전달된 매개변수의 멤버를 대입하기 위해 사용한다. 자동 이스케이핑이 적용되지 않는다. 마찬가지로 보안상 취약함으로 클라이언트가 넘겨준 값을 대입하기 위해서는 절대로 사용하지 않는다.
TMI
여태껏 마이 배티스라고 알고 있었는데 알고보니 마이 바티스라고 읽는 거였다..
왠지 배신감
'언어 > Spring Boot' 카테고리의 다른 글
[Spring Boot] 메모장 만들기3 (Select, Delete, DeleteAll 기능 추가) (0) | 2022.10.31 |
---|---|
[Spring Boot] 메모장 만들기2 (feat. MyBatis) (0) | 2022.10.30 |
[Spring Boot] DB 연동 (feat. 메모장 만들기) (3) | 2022.10.26 |
[Spring Boot] 메모장 만들기(feat. HTML, CSS, JS) (2) | 2022.10.26 |
[Spring Boot / 문제] 어노테이션 활용 (Add, Multiply 주소 & HTML 연동) (0) | 2022.10.25 |
Comments