vo-> mapper -> service -> contoller -> jsp
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@SuppressWarnings("serial")
public class DeptVO extends Criteria {
// 클래스의 3요소 : 속성(필드), 생성자, 함수(Setter/Getter)
*예제 오라클 SQL 테이블
// DNO NUMBER NOT NULL PRIMARY KEY,
// DNAME VARCHAR2(255),
// LOC VARCHAR2(255),
// INSERT_TIME VARCHAR2(255),
// UPDATE_TIME VARCHAR2(255)
private int dno; //부서번호(기본키)
private String dname; // 부서명
private String loc; // 부서위치
// DNO NUMBER NOT NULL PRIMARY KEY,
// DNAME VARCHAR2(255),
// LOC VARCHAR2(255),
// INSERT_TIME VARCHAR2(255),
// UPDATE_TIME VARCHAR2(255)
//속성 모두 있는 생성자 : == 어노테이션 : @AllArgsConstructor
//setter/getter : source ==어노테이션 : @Setter,Getter
// (참고) 객체 출력 : To-String() 재정의 == 어노테이션 : @ToString
// source
}
@Mapper
public interface DeptMapper {
public List<?> selectDeptList(Criteria searchVo);// 전체 조회 : 페이징 기능 추가
}
MY BATIS 작성
<!-- Settings 설정 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="jdbcTypeForNull" value="NULL"/>
</settings>
<!-- 별명 지정 -->
<typeAliases>
<typeAlias type="com.simplecoding.repositoryexam.vo.common.Criteria" alias="Criteria"/>
<typeAlias type="com.simplecoding.repositoryexam.vo.basic.DeptVO" alias="DeptVO"/>
</typeAliases>
오라클SQL 작성
SELECT * FROM TB_DEPT
WHERE DNAME LIKE '%'|| #{searchKeyword} ||'%'
OFFSET #{firstIndex} ROWS
FETCH NEXT #{recordCountPerPage ROWS} ONLY
바이바티스 + 오라클SQL 변수넣기
SELECT * FROM TB_DEPT WHERE DNAME LIKE '%'|| #{searchKeyword} ||'%' OFFSET #{firstIndex} ROWS FETCH NEXT #{recordCountPerPage ROWS} ONLY