68일차

백엔드를 팝니다·2024년 9월 5일

개발자 수업

목록 보기
43/72

이클립스+jsp+오라클sql 게시판 만들기

vo-> mapper -> service -> contoller -> jsp

VO

@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

@Mapper
public interface DeptMapper {
public List<?> selectDeptList(Criteria searchVo);// 전체 조회 : 페이징 기능 추가
}

  • description : SQL 문 연결된 인터페이스, CRUD 함수이름 작성
    • spring => sql 작성
      DeptMapper : 함수 이름 (인터페이스)
      => java 작성하면 가독성 안좋음
      "select from " + ""
      => html 확장한 xml 파일로 작성함:
      (mybatis 프레임워크 : 자식클래스 역할)
      select
      from department
      */

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

전체조회 및 검색 페이지 게시판 완료

profile
백엔드 고수가 되고싶은 사람

0개의 댓글