분류 전체보기 70

MyBatis

Mapper XML Elements 설명 cache 해당 namespace를 위한 캐시 설정 cache-ref 다른 namespace의 캐시 설정에 대한 참조 resultMap DB 결과 데이터를 표로 출력 parameterMap 비권장! 다른 구문에서 재사용하기 위한 sql 매핑된 insert문 select : select keyword는 MyBatis에게 PreparedStatement 파라미터를 만들도록 지시한다 //Mapper에 동일한 이름을 가진 메서드와 id로 연결, int타입의 파라미터, 결과는 HashMap에 저장 SELECT * FROM PERSON WHERE ID = #{id} select Attributes..

카테고리 없음 2024.03.07

Spring 07 - AOP, Transaction

AOP : Aspect Oriented Programming이 추구하는 것은 관심사의 분리seperate concerns 로, 주변 로직은 관심사로 분리한다. 관심사와 비즈니스 로직을 분리하여 별도의 코드로 작성하고, 실행할 때 결합 Tip) AOP 기능은 일반적인 API를 이용하는 클래스(POJO)에 적용, Controller에 적용이 불가능한 것은 아니지만, Controller의 경우 인터셉터나 필터 등을 이용 주변 로직의 예 파라미터가 올바르게 들어왔는가 적절한 권한을 가진 사용자가 작업하는가 발생할 수 있는 예외 처리 Target: 핵심 비즈니스 로직, 관심사와 관계를 맺지 않는다, 순수한 core Proxy: 관심사들을 거쳐 Target을 호출, 대부분 스프링 AOP 기능을 이용한 자동 생성 (..

Spring 2024.03.07

Spring 06 - REST방식, 댓글

과거에 제작된 웹페이지의 경우 페이지를 이동하더라도 브라우저의 주소는 변화하지 않는 방식을 선호했다. 하지만 최근의 웹페이지들은 페이지를 이동하면 브라우저의 주소도 이동하는 방식을 사용한다. REST Representational State Transfer '하나의 URI는 하나의 고유한 Resource를 대표한다' 는 개념에 추가적인 데이터를 통한 전송방식 결합 스프링은 (추가적인) 데이터 처리를 위한 어노테이션과 기능이 있다 (ex) @RequestMapping, @ResponseBody, GET 방식, POST 방식 GET, POST, PUT, DELETE 4가지의 행위가 메서드로 제공 서버에서 전송하는 것이 순수한 데이터 (객체 X) Model에 데이터를 담아서 기존의 방식과 다르게 메서드의 리턴..

Spring 2024.03.06

Spring 05 - Paging

20240304 Tip) 서비스에서 보드 + 멤버 + 아이템 등 여러 테이블 붙음 조합? ex) 상품 결제 페이지, 제품 상세정보 페이지 분기 Controller URL로 들어오고 JSP로 보내고 C: regist R: read (R은 두 개 list, read), U: http://localhost/board/list -> board 클래스, list 메서드 너낌~ 부트스트랩에 있는 속성 Index [서론] rowNum: 가상의 일련 번호 order by: DB가 하는 일이라 힘들어 기존 SB Admin2 부트 스트랩 페이징 처리: 모든 리스트를 가져와 프론트에서 페이징 처리: 성능 저하 배운 방법: DB에서 백엔드로 10개씩 가져와 그때그때 불러옴 성능 업 Tip) 무한스크롤 - 자바스크립트, 에이젝..

Spring 2024.03.04

Spring 04

이클립스 Spring 지원이 끝났으므로 STS 다운해야 하는데 4는 부트용 3은 스프링용 VO는 DB에 있는 거 가져오는 느낌 =/= DAO 185p mapper가 관리 @Select 간단한 거 할 때 복잡한 거 할 때 XML 기법 Mapper XML src/main/resource 내에 동일한 경로의 nextval "1개의 게시물이 작성되었습니다") public void insert(BoardVO board); xml insert into tbl_board (bno, title, content, writer) values (seq_board.nextval, #{title}, #{content}, #{writer}) 2. insert가 실행되고 생성된 PK값을 알아야 하는 경우 (번호가 생성되고 번호 이..

Spring 2024.02.29

기본적인 웹 게시물 관리

scrc/main/resources 는 테스트할 때 쓸 만한 애들 1.요구사항 분석 해야 ==가설을 세운다 2.요구사항 따른 화면 설계 jdbcapi.DriverSpy == 결과를 표 형식 sqlSessionFactory == Mybatis, mapper 이용 처리 클래스 (자바) 파일에서 어노테이션으로 select할 시 컴파일되어버려 힘듦 그래서 xml을 이용하는 방법 경로와 파일명 똑같이 해주면 스프링이 똑같이 인식해줌 root-context.xml

Spring 2024.02.28

Spring 03 - Spring MVC, 파일 업로드(기본)

Spring MVC : servlet-context.xml로 설정하는 Web영역, root-context.xml로 설정하는 Java영역을 연동하여 구동하는 방식 WebApplicationContext는 기존 구조에 MVC 설정을 포함하는 구조이다. 스프링은 웹 애플리케이션을 목적으로 나온 프레임워크가 아니기 때문에 달라지는 영역에 대해 완전히 분리하고 연동하는 방식으로 구현된다. JSP HTML, CSS, JS Service Controller Mapper DB 역할 View Ajax, JSON C R U D C R U D xml (MyBatis) Table (Oracle) 계층 프레젠테이션 계층 비즈니스 계층* 영속성 * Service(서비스): 비즈니스 영역에 있는 객체 web.xml contextC..

Spring 2024.02.28

Spring 02 - ConnPool

HikariCP : dataSource에 connection pool 연결해줌 com.zaxxer HikariCP 2.7.4 MyBatis : DB 연결 및 sql 처리용 객체 API, 기존 SQL 활용 가능 (native SQL) 전통적인 JDBC 프로그램 MyBatis 직접 Connection을 맺고 마지막에 close() 자동으로 Connection close() 가능 PreparedStatement 직접 생성 및 처리 MyBatis 내부적으로 PreparedStatement 처리 PreparedStatement의 setXXX() 등에 대한 모든 작업을 개발자가 처리 #{prop}과 같이 속성을 지정하면 내부적으로 자동 처리 SELECT의 경우 직접 ResultSet 처리 리턴 타입을 지정하는 경우..

Spring 2024.02.27