매우 중요함!! 잘 해야함!!
MyBatis
- 데이터 연동 관련 프레임워크
- 기존 JDBC 연동 과정 : connection -> Statement 객체 생성 -> SQL문 전송 -> 결과 반환 -> close
- 위의 과정을 개선해 SQL문의 가독성을 높여 사용하기 편하게 만든 것
- DAO -> Spring-mybatis
- mybatis : Data Source를 받아와(DBCP를 사용) Connection을 함.
- 과거에는 ibatis였음
- Java와 SQL(XML) 분리
- 자동으로 파라미터 값 매핑
- 자동으로 결과값을 객체로 매핑시켜줌
insert into student(a,b,c,d,e,f) valuse (변수,변수...)
select * from student -> StudentVO로 매핑해서 return
특징
- SQL 실행 결과를 자바 빈즈 또는 Map 객체에 매핑해 주는 Persisitence 솔루션으로 관리 => SQL을 소스가 아닌 XML로 분리하는 것
- SQL 문과 프로그래밍 코드를 분리해서 구현
구조
- 바깥에 mapper 태그
- mapper 안에 < select > < insert > < update > < delete >로 태그로 존재함
- DAO에서 SQL을 실행할 때 선택자를 지정해야 하는데, 이 때 mapper 태그의 namespace, 태그의 id를 namespace.id(student.all)로 지정해 주면 됨
실행시 : .메소드명("namespace.id"[,파라미터(객체)])
#{변수명} : preparedstatement. ?로 처리됨
{변수명} : statement. 그대로 처리됨 where id = ${id} -> where id = abc where id = '{id}'
물음표는 값만 들어갈 수 있음.
메소드
- selectList() : 여러개
- selectOne() : 한개
hikaricp 다운
hikaricp
mybatis 다운
mybatis
mybatis spring 다운
mybatis spring
Spring Transaction 다운
spring transaction
동적 SQL
< where > : where 명령어를 추가/제외
< if test="조건" >SQL< /if > : 조건식이 참이면 포함되는 SQL
< sql > : 독립적으로 저장
< include > : 포함
< resultMap > : 결과
< parameterMap > : 파라미터